- 1. MATLAB संपादक विंडो का उपयोग करके छवि प्रसंस्करण
- 2. MATLAB GUI के साथ इमेज प्रोसेसिंग
- इमेज प्रोसेसिंग के लिए MATLAB ग्राफिकल यूजर इंटरफेस बनाना
- इमेज प्रोसेसिंग के लिए MATLAB GUI कोड
- छवि प्रसंस्करण के लिए MATLAB GUI कोड चलाएँ
अपने कैमरे को किसी वस्तु की ओर इंगित करने की कल्पना करें और कैमरा आपको उस वस्तु का नाम बताता है, हां, एंड्रॉइड स्मार्ट फोन में Google लेंस छवि प्रसंस्करण का उपयोग करके एक ही काम कर रहा है। यह कंप्यूटर को चीजों का पता लगाने और पहचानने और उनके अनुसार कार्रवाई करने के लिए एक दृष्टि देता है । इमेज प्रोसेसिंग में फेस डिटेक्शन एंड रिकॉग्निशन, थंब इंप्रेशन, ऑगमेंटेड रियलिटी, OCR, बारकोड स्कैन और कई तरह के एप्लिकेशन हैं। इमेज प्रोसेसिंग के लिए बहुत सारे सॉफ्टवेयर्स उपलब्ध हैं, उनमें से MATLAB सबसे अच्छी शुरुआत है।
MATLAB कई अग्रिम छवि प्रसंस्करण संचालन कर सकता है, लेकिन MATLAB में छवि प्रसंस्करण के साथ आरंभ करने के लिए, यहाँ हम RGB को ग्रे जैसे कुछ बुनियादी कार्यों की व्याख्या करेंगे, छवि को घुमाएंगे, द्विआधारी रूपांतरण आदि। आप आगे चलकर शोर हटाने, छवि के लिए स्वचालित कार्यक्रम बना सकते हैं। इस ट्यूटोरियल में बताए गए फ़ंक्शंस का उपयोग करके स्पष्टता, फ़िल्टरिंग।
आगे बढ़ने से पहले, यदि आप MATLAB के लिए नए हैं, तो आप बेहतर समझने के लिए हमारे पिछले MATLAB ट्यूटोरियल की जाँच कर सकते हैं:
- MATLAB के साथ शुरुआत करना: एक त्वरित परिचय
- MATLAB के साथ Arduino Interfacing - निमिष एलईडी
- MATLAB और Arduino का उपयोग कर डीसी मोटर नियंत्रण
- MATLAB और Arduino का उपयोग कर स्टेपर मोटर नियंत्रण
- कैसे MATLAB का उपयोग करके वास्तविक समय तापमान ग्राफ प्लॉट करने के लिए
MATLAB में, हमेशा की तरह, किसी भी इमेज प्रोसेसिंग एल्गोरिदम को करने के दो तरीके हैं, एक तो सीधे एडिटर / कमांड विंडो में कमांड दर्ज करना है और दूसरा उसी के लिए GUI बनाकर है। यहां, हम आपको MATLAB में छवि प्रसंस्करण के बुनियादी संचालन करने के लिए दोनों तरीके दिखाएंगे।
1. MATLAB संपादक विंडो का उपयोग करके छवि प्रसंस्करण
अब, हम संपादक विंडो में छवि प्रसंस्करण के कुछ बुनियादी कार्यों को करने के लिए कोड लिखेंगे। MATLAB में प्रयुक्त सभी मूल शब्दावली से परिचित होने के लिए लिंक का अनुसरण करें। संपादक विंडो में नीचे दिए गए कोड को कॉपी और पेस्ट करें, a = imread ('F: \ सर्किट डाइजेस्ट' इमेज प्रोसेसिंग का उपयोग करके matlab \ camerman.jpg '); सबप्लॉट (2,3,1); imshow (a); b = rgb2gray (a); सबप्लॉट (2,3,2); imshow (b); c = im2bw (a); सबप्लॉट (2,3,3); imshow (c); d = imadjust (b); सबप्लॉट (2,3,4); imshow (d); ई = ए; e = rgb2gray (e); सबप्लॉट (2,3,5); imhist (e); imfinfo ('F: \ सर्किट डाइजेस्ट' इमेज प्रोसेसिंग मैटलैब \ _ दाढ़ी-मैन.जेपीजी 'का उपयोग करके) = आकार (ए) % कॉलॉर्मैप (' स्प्रिंग ')
चर 'a' में, हम कमांड इम्रेड ('फ़ाइलनाम') का उपयोग करके छवि आयात कर रहे हैं और फिर सबप्लेट (पंक्ति, स्तंभ, स्थिति) का उपयोग करके '2' पंक्ति और '3' कॉलम का एक प्लॉट बना रहे हैं और स्थिति पर आयातित छवि प्रदर्शित कर रहे हैं। 1 'है। छवि दिखाने के लिए हम कमांड imshow ('फ़ाइल नाम') का उपयोग करते हैं ।
अपलोड की गई छवि पर कुछ बुनियादी प्रसंस्करण करने के लिए नीचे कुछ आदेश दिए गए हैं:
- वेरिएबल 'बी' में, हम RGB इमेज को rgb2gray ('फाइलनाम') का उपयोग करके और इसे '2' प्लॉट पर प्लॉट में प्रदर्शित करके ग्रेस्केल इंटेंसिटी इमेज में परिवर्तित कर रहे हैं ।
- चर 'ग' में, हम छवि को बाइनरी इमेज में परिवर्तित कर रहे हैं या आप कमांड im2bw ('फ़ाइलनाम') का उपयोग करके और इसे प्लॉट में प्रदर्शित करके '0' (ब्लैक) और '1' (व्हाइट) के प्रारूप में कह सकते हैं। स्थिति '3'।
- चर 'डी' में, हम कमांड इमैडल ('फ़ाइलनाम') का उपयोग करके और स्थिति '4' पर प्लॉट में प्रदर्शित करके स्केल इमेज इंटेंसिटी मानों को समायोजित या मैप कर रहे हैं ।
- चर 'ई' में, हम कमांड इमिस्ट ('फ़ाइलनाम') का उपयोग करके स्केल इमेज की हिस्टोग्राम की साजिश रच रहे हैं और इसे स्थिति '5' पर प्लॉट में प्रदर्शित कर रहे हैं। हिस्टोग्राम की साजिश रचने के लिए आपको हमेशा छवि को ग्रेस्केल में बदलना होगा और फिर आप उस ग्राफिक फ़ाइल के हिस्टोग्राम को देख पाएंगे।
- Imfinfo ('स्थान के साथ फ़ाइल नाम') कमांड का उपयोग चित्रमय फ़ाइल के बारे में जानकारी प्रदर्शित करने के लिए किया जाता है।
- = आकार ('फ़ाइलनाम') कमांड का उपयोग किसी विशेष ग्राफिक फ़ाइल के आकार और रंग विमानों को प्रदर्शित करने के लिए किया जाता है।
- colormap ('स्प्रिंग') ग्राफिक फ़ाइल के colormap के प्रकार को बदलने के लिए उपयोग किया जाता है। यहाँ, मेरे कोड में मैंने इस कमांड को टिप्पणी के रूप में सेट किया है लेकिन आप प्रतिशत चिन्ह को हटाकर इसका उपयोग कर सकते हैं। MATLAB में कई तरह के रंग होते हैं जैसे जेट, एचएसवी, हॉट, कूल, समर, ऑटम, विंटर, ग्रे, बोन, कॉपर, पिंक, लाइन्स और स्प्रिंग।
इनकी तरह, MATLAB में कई कमांड हैं जिनका उपयोग विभिन्न कार्यों को करने के लिए किया जा सकता है, आप लिंक का पालन करके MATLAB में इमेज प्रोसेसिंग कार्यों की जांच कर सकते हैं।
2. MATLAB GUI के साथ इमेज प्रोसेसिंग
इमेज प्रोसेसिंग के लिए MATLAB ग्राफिकल यूजर इंटरफेस बनाना
इमेज प्रोसेसिंग के लिए GUI (ग्राफिकल यूजर इंटरफेस) बनाने के लिए कमांड विंडो में नीचे कमांड टाइप करके GUI लॉन्च करें ।
मार्गदर्शक
एक पॉपअप विंडो खुलेगी, फिर नए रिक्त GUI का चयन करें जैसा कि नीचे चित्र में दिखाया गया है,
अब हमें पुशबटनों की संख्या चुननी होगी (प्रत्येक पुशबटन अलग कार्य करेगा) और छवि प्रदर्शित करने के लिए एक अक्ष।
पुशबटन या एक्सिस के आकार को बदलने या बदलने के लिए, बस उस पर क्लिक करें और आप बटन के कोनों को खींचने में सक्षम होंगे। इनमें से किसी पर भी डबल क्लिक करने से आप उस विशेष बटन के रंग, स्ट्रिंग, टैग और अन्य विकल्पों को बदल पाएंगे। अनुकूलन के बाद यह इस तरह दिखेगा
आप अपनी पसंद के अनुसार बटन को कस्टमाइज़ कर सकते हैं। अब जब आप इसे सहेजते हैं , MATLAB के संपादक विंडो में एक कोड उत्पन्न होता है । अलग-अलग पुशबटन के लिए कार्य निर्धारित करने के लिए उत्पन्न कोड को संपादित करें। नीचे हमने MATLAB कोड संपादित किया है।
इमेज प्रोसेसिंग के लिए MATLAB GUI कोड
MATLAB GUI का उपयोग करके इमेज प्रोसेसिंग के लिए पूरा MATLAB कोड, इस परियोजना के अंत में दिया गया है। आगे हम डाउनलोड के लिए GUI फ़ाइल (.fig) और कोड फ़ाइल (.m) को शामिल कर रहे हैं, जिसके उपयोग से आप अपनी आवश्यकता के अनुसार बटन या एक्सिस आकार को अनुकूलित कर सकते हैं। हमने नीचे बताए अनुसार उत्पन्न कोड को संपादित किया है।
में 'uploadimage' समारोह, कॉपी और पीसी से फ़ाइल सम्मिलित करने के लिए नीचे दिए गए कोड पेस्ट करें। यहां, MATLAB GUI में छवि आयात करने के लिए कमांड uigetfile ('इमेज एक्सटेंशन टाइप') का उपयोग किया जाता है। पढ़ें कि फ़ाइल का उपयोग कर आदेश imread () और फिर आदेश के साथ प्रदर्शित imshow () पर axes1 का उपयोग कर कुल्हाड़ियों (handles.axes1) । अब, कमांड सेटपडेटा () के साथ, GUI में वैरिएबल को स्टोर करें ताकि GUI के एक भाग से GUI के एक हिस्से तक वैरिएबल पहुंच सके।
a = uigetfile ('। jpg') a = imread (a); कुल्हाड़ियों (संभालती है ।axes1); imshow (a); सेटपडेट (0, 'ए', ए)
अब, हर फ़ंक्शन में आपको कमांड गेटपडेटा () दिखाई देगा, जो जीयूआई में सेटपडेटा () का उपयोग करके संग्रहीत डेटा को पुनः प्राप्त करने के लिए उपयोग किया जाता है ।
यहाँ हम इमेज प्रोसेसिंग में आठ सामान्यतः उपयोग किए जाने वाले कार्यों की व्याख्या करेंगे
एस। |
आदेश |
बटन का नाम |
कार्य निष्पादित करने के लिए |
१। |
uigetfile () |
तस्वीर डालिये |
डिस्क से छवि आयात करने के लिए क्लिक करें |
२। |
rgb2gray () |
आरजीबी टू ग्रे |
RGB इमेज को ग्रेस्केल में बदलने के लिए क्लिक करें |
३। |
im2bw () |
बाइनरी इमेज में बदलें |
छवि को बाइनरी में बदलने के लिए क्लिक करें |
४। |
- |
रीसेट |
छवि को मूल के रूप में रीसेट करने के लिए क्लिक करें |
५। |
imhist () |
हिस्टोग्राम |
चित्र का हिस्टोग्राम देखने के लिए क्लिक करें |
६। |
लागू () |
पूरक छवि |
पूरक छवि की जांच करने के लिए क्लिक करें |
।। |
किनारा (फ़ाइल नाम, विधि) |
किनारे का पता लगाना |
छवि में किनारों का पता लगाने के लिए क्लिक करें |
।। |
नक़ल (फ़ाइल नाम, कोण) |
घड़ी की सुई की दिशा में घुमाओ |
छवि को दक्षिणावर्त दिशा में घुमाने के लिए क्लिक करें |
९। |
नक़ल (फ़ाइल नाम, कोण) |
एंटी-क्लॉकवाइज घुमाएं |
छवि को एंटी-क्लॉकवाइज दिशा में घुमाने के लिए क्लिक करें |
1. RGB छवि को ग्रेस्केल में बदलें
में 'rgb2gray' समारोह, कॉपी और नीचे दिए गए कोड को चिपकाने के लिए ग्रेस्केल में आरजीबी छवि परिवर्तित कमांड का उपयोग करके rgb2gray () ।
a = getappdata (0, 'a'); agray = rgb2gray (a); कुल्हाड़ियों (संभालती है ।axes1); imshow (agray);
2. बाइनरी इमेज में बदलें
में 'im2bw' समारोह, कॉपी और नीचे दिए गए कोड को चिपकाने के लिए द्विआधारी छवि में छवि परिवर्तित या आप के प्रारूप में कह सकते हैं '0' (काला) और '1' (सफेद) कमांड का उपयोग करके im2bw () ।
a = getappdata (0, 'a'); abw = im2bw (a); कुल्हाड़ियों (संभालती है ।axes1); imshow (abw);
3. मूल छवि पर रीसेट करें
में 'रीसेट' समारोह, कॉपी और करने के लिए नीचे दिए गए कोड पेस्ट मूल छवि में संपादित छवि रीसेट।
a = getappdata (0, 'a'); कुल्हाड़ियों (संभालती है ।axes1); imshow (a);
4. प्लॉट इमेज हिस्टोग्राम
में 'हिस्टोग्राम' समारोह, कॉपी और करने के लिए नीचे दिए गए कोड पेस्ट ग्रेस्केल छवि के हिस्टोग्राम साजिश कमांड का उपयोग करके imhist ('फ़ाइल नाम') और पर में प्रदर्शित axes1 । हिस्टोग्राम की साजिश रचने के लिए आपको हमेशा छवि को ग्रेस्केल में बदलना होगा और फिर आप उस ग्राफिक फ़ाइल के हिस्टोग्राम को देख पाएंगे।
a = getappdata (0, 'a'); आहिस्ता = ए; ahist = rgb2gray (ahist); कुल्हाड़ियों (संभालती है ।axes1); imhist (ahist);
5. पूरक छवि में कनवर्ट करें
में 'complementimage' समारोह, कॉपी और देखने के लिए नीचे दिए गए कोड पेस्ट डाला ग्राफिक के पूरक कमांड का उपयोग करके फ़ाइल imcomplement () ।
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); कुल्हाड़ियों (संभालती है ।axes1); imshow (acomp);
6. कैनी विधि का उपयोग कर एज डिटेक्शन
में 'किनारे' समारोह, कॉपी और पता लगाने और कमांड का उपयोग करके ग्रेस्केल छवि में किनारों को खोजने के लिए नीचे दिए गए कोड पेस्ट बढ़त ('फ़ाइल नाम', 'विधि') । विधि के स्थान पर आप इन तीनों में से कैनी, प्रीविट और मोंटाज चुन सकते हैं । हम धार का पता लगाने के लिए कैनी पद्धति का उपयोग कर रहे हैं । इसके अलावा, आप मूल छवि से सीधे किनारे का पता नहीं लगा सकते हैं, पहले आपको इसे ग्रेस्केल में बदलना होगा और फिर आप किनारों का पता लगाने में सक्षम हो सकते हैं।
a = getappdata (0, 'a'); anedge = a; aedge = rgb2gray (anedge); anedge = edge (प्रतिज्ञा , 'कैनी') ' axes ( संभालता है ।axes1); imshow (anedge);
7. इमेज क्लॉकवाइज घुमाएँ
में 'घड़ी की' समारोह, कॉपी और करने के लिए नीचे दिए गए कोड पेस्ट घड़ी की दिशा में छवि को घुमाने के आदेश के उपयोग से imrotate (फ़ाइल नाम, 'कोण')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (एसीलॉक, 270); कुल्हाड़ियों (संभालती है ।axes1); imshow (aclock);
8. इमेज एंटी-क्लॉकवाइज घुमाएँ
में 'घड़ी की विपरीत' समारोह, कॉपी और करने के लिए नीचे दिए गए कोड पेस्ट घड़ी की विपरीत दिशा में छवि को घुमाने के आदेश के उपयोग से imrotate (फ़ाइल नाम, 'कोण')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); कुल्हाड़ियों (संभालती है ।axes1); imshow (aclock);
छवि प्रसंस्करण के लिए MATLAB GUI कोड चलाएँ
अब,.m फ़ाइल में संपादित कोड को चलाने के लिए 'RUN' बटन पर क्लिक करें
MATLAB को प्रतिक्रिया देने में कुछ सेकंड लग सकते हैं, किसी भी GUI बटन पर क्लिक न करें जब तक MATLAB निचले बाएँ कोने में व्यस्त संदेश नहीं दिखा रहा है जैसा कि नीचे दिखाया गया है,
जब सब कुछ तैयार हो जाए, तो 'अपलोड इमेज' बटन पर क्लिक करके पीसी से छवि आयात करें। अब, आप किसी भी बटन को तदनुसार क्लिक करके छवि को परिवर्तित या घुमा सकेंगे। नीचे दी गई तालिका आपको वह कार्य दिखाएगी जो हम किसी विशेष बटन के क्लिक पर कर रहे हैं:
प्रत्येक बटन पर क्लिक करने पर परिणाम नीचे दिखाया जाएगा,
प्रत्येक बटन का पूरा काम नीचे दिए गए वीडियो में दिखाया गया है ।
आप इमेज प्रोसेसिंग टूलबॉक्स के साथ उन्नत स्तर की इमेज प्रोसेसिंग भी कर सकते हैं, जिसे आप MATHWORKS आधिकारिक साइट से खरीद सकते हैं, अग्रिम स्तर के कुछ ऑपरेशन नीचे सूचीबद्ध हैं:
- ज्यामितीय संचालन
- ब्लॉक संचालन
- रैखिक छानने और फिल्टर डिजाइन
- रूपांतरण
- छवि विश्लेषण और वृद्धि
- बाइनरी इमेज ऑपरेशन