image processing - Montage in Matlab - save and show -
जब मैं यह कोड चलाता हूं:
fileFolder = fullfile (matlabroot, 'toolbox', 'छवियों', 'imdemos'); DirOutput = dir (पूर्णफ़ाइल (फाइलफ़ोल्डर, 'एटी 3_1 एम 4 _ *। टीआईएफ')); फ़ाइलनाम = {dirOutput.name} 'zImg = montage (फ़ाइलनाम,' आकार ', [2 5]); मुझे एक नए आंकड़े में असेंटेज छवि मिलती है, लेकिन मैं इसे रद्द कर सकता हूं और इसे बस में संग्रहीत कर सकता हूं। याद? इसके अलावा, मैं असेंटेज को नहीं बचा सकता। getframe
का उपयोग किए बिना और क्यों मैं यह कैसे उत्पन्न कर सकता हूं क्योंकि मैं उत्पन्न आंकड़ा नहीं दिखाना चाहता?
MATLAB के इमेज प्रोसेसिंग टूलबॉक्स में फ़ंक्शन केवल डिस्प्ले प्रयोजनों के लिए है और इसलिए यह केवल एक आंकड़ा दिखाता है। एकमात्र तरीका है कि आप इस आंकड़े से छवि डेटा प्राप्त करने में सक्षम होंगे, यदि आप आउटपुट के रूप में एक फ़ंक्शन के लिए एक हैंडल असाइन करते हैं (जो कि आपके मामले में यदि आप ऐसी कोई छवि बनाना चाहते हैं जो zImg
है), तो Getframe
/ cdata मुहावरे का सुझाव दिया है हालांकि, यह आपको एक सफेद सीमा प्रदान करेगा जैसा आपने देखा है।
खुद कर रहा है montage
जैसा एक ही काम कर रही है, तो आप क्या < कोड> असेंटेज असेंटेज
का एक विकल्प सेल सरणी में सभी चित्रों में पढ़ना होगा, फिर उन्हें मैन्युअल रूप से एक असेंटेज में व्यवस्थित करें। मैं यह मानने जा रहा हूं कि आप पंक्ति-प्रमुख प्रारूप में छवियों को ढेर कर रहे हैं, इसलिए पंक्तियों को एक समय में एक पंक्ति से पॉपुलेटेड किया जा रहा है इसका अर्थ है कि छवि 1 से 5 की पहली पंक्ति होगी, जबकि चित्र 6 से 10 दूसरी पंक्ति होगी।
इसे 2 डी मैट्रिक्स में लाने के लिए चाल है कि आपको उपयोग करने की आवश्यकता है। reshape
स्तंभ-प्रमुख प्रारूप में तत्वों को पॉप्युलेट करेंगे, ताकि आपको अपने परिणाम के स्थानांतरित करें का निर्माण करने की आवश्यकता हो, फिर उस स्थानांतरित करें जब आप कर लेंगे। के बाद, सेल सरणियों को खत्म करने और अंतिम 2 डी मैट्रिक्स बनाने का उपयोग करें।
जैसे, ऐसा कुछ करें:
% // आपका कोड सभी प्राप्त करने के लिए छवि फ़ाइल नाम fileFolder = fullfile (matlabroot, 'toolbox', 'images', 'imdemos'); DirOutput = dir (पूर्णफ़ाइल (फाइलफ़ोल्डर, 'एटी 3_1 एम 4 _ *। टीआईएफ')); FileNames = {dirOutput.name}; % 1 एक 1D सेल सरणी बनाएँ जो छवियों के सभी चित्र = सेल (1, संख्या (फ़ाइलनाम)) को संग्रहीत करेगी; % // खुद छवियों में पढ़ें और idx = 1 के लिए सेल सरणी पॉप्युलेट करें: numel (fileNames); चित्र {idx} = रीड (फाइलनाम {idx}); अंत% // सेल सरणी का नतीजा कर लें, ताकि यह 2 x 5 मैट्रिक्स हो, फिर% // 2 डी सेल सरणी को अंतिम 2 डी मैट्रिक्स में कनवर्ट करें। ZImg = cell2mat (reshape (छवियाँ, [5, 2])। '); % // फ़ाइल लिखने के लिए लिखें (zImg, 'C: \ users \ xc \ डेस्कटॉप \ ATMtemp.png')
Comments
Post a Comment