मेरे पास विभिन्न संकेतों के साथ एक आरजीबी छवि है। मेरा मुख्य लक्ष्य उन संकेतों की गणना करना है जो छवि सीमाओं के संपर्क में हैं।
दृष्टिकोण और समस्या
मैं छवि [छवि लोड करके शुरू किया। 1], फिर इसे ग्रेस्केल में बदल दिया और कुछ शोर से छुटकारा पाने के लिए एक माध्यिका फ़िल्टर लागू किया [अंजीर]। 2]। फिर मैंने इसे 0.2 की सीमा के साथ द्विभाजित किया, जिसके परिणामस्वरूप चित्र 3 हुआ। इस समय मुझे अपनी बिनाराइज्ड छवि मिली, लेकिन समस्या यह है कि कुछ हिस्से जो एक ही संकेत के हैं, वे केवल एक के बजाय विभिन्न क्षेत्रों में दिखाई दे रहे हैं। अब मेरा लक्ष्य उन क्षेत्रों का विलय करना है जो एक ही वस्तु से संबंधित हैं, इसलिए मैं यह bwlabel
गिनने के लिए उपयोग कर सकता हूं कि छवि में कितने चिन्ह हैं, और imclearborder
सीमा में मौजूद लोगों से छुटकारा पाने के लिए उपयोग bwlabel
करें , और फिर से अंतर प्राप्त करने के लिए उपयोग करें दो।
मेरे दृष्टिकोण का इस्तेमाल किया गया bwmorph
, Dilate
वस्तुओं फ़ैल जाती है और फिर उन लोगों के साथ भरने के लिए कोशिश imfill
, holes
। लेकिन समस्या यह है कि अगर मैं उन्हें थोड़ी मात्रा में पतला करता हूं [अंजीर। 4], imfill
उन्हें भरने के लिए प्रतीत नहीं होता है, अगर मैं उन्हें एक बड़ी राशि द्वारा पतला करता हूं [चित्र 5] सभी वस्तुओं का विलय शुरू हो जाता है, ...
कोड
img=im2double(imread('image.png')); figure, imshow(img)
img_gray=rgb2gray(img); imshow(img_gray);
img_mediana=medfilt2(img_gray, [3 3]); figure, imshow(img_mediana);
img_bin=im2bw(img_mediana, 0.2); imshow(img_bin)
img_dilate=bwmorph(img_bin, 'Dilate', 10); imshow(img_dilate)
img_fill=imfill(img_dilate, 'Holes'); figure, imshow(img_fill)
आंकड़े
चित्र 1 :
अंजीर 1 http://dl.dropbox.com/u/5272012/1.png
चित्र 2 :
अंजीर 2 http://dl.dropbox.com/u/5272012/2.png
चित्र 3 :
अंजीर 3 http://dl.dropbox.com/u/5272012/3.png
चित्र 4 :
अंजीर 4 http://dl.dropbox.com/u/5272012/4.png
चित्र 5 :