यहाँ एक सरल प्रक्रिया है:
- छवि में प्रत्येक क्षेत्र के लिए बनावट माप निर्दिष्ट करें।
- एक ही बनावट माप वाले आसन्न क्षेत्रों में शामिल होने के लिए एक क्षेत्र लेबलिंग / कनेक्टिविटी एल्गोरिदम (या क्षेत्र बढ़ते एल्गोरिथम) का उपयोग करें।
- प्रत्येक क्षेत्र के समोच्च का पता लगाने के लिए एक सरल किनारे-निम्नलिखित एल्गोरिथ्म को लागू करें।
कानून की बनावट के उपाय एक छवि में बनावट का निर्धारण करने के लिए एक पुरानी लेकिन अभी भी उपयोगी तकनीक है, और वे पूरी छवि में बनावट बी से बनावट ए को भेद करने के लिए आपके लिए पर्याप्त हो सकते हैं। विकिपीडिया लेख में अनुभाग "कानून बनावट ऊर्जा उपाय" देखें:
http://en.wikipedia.org/wiki/Image_texture
पहले कदम के रूप में, सभी बनावट उपायों की गणना करें और निर्धारित करें कि कौन सा विशेष उपाय (जैसे एज या स्पॉट) आपको एक बनावट को दूसरे से आसानी से भेद करने की अनुमति देता है। (यदि आप कुछ चित्र पोस्ट करते हैं तो मैं एक बनावट उपाय की पहचान करने में आपकी मदद कर सकता हूं।)
यदि आपके पास केवल दो बनावट हैं, ए और बी, तो आप उन्हें अग्रभूमि और पृष्ठभूमि के रूप में मान सकते हैं, और एक मानक क्षेत्र लेबलिंग एल्गोरिदम काम करेगा। प्रसंस्करण में क्या हो रहा है यह देखने के लिए आसान बनाने के लिए, आप रंग को सफेद करने के लिए ए टेक्सल्स (बनावट तत्व, बनावट के छोटे टुकड़े) और बी टेक्सल्स को रंग काला करने के लिए एक नई छवि उत्पन्न कर सकते हैं। क्षेत्र लेबलिंग और / या समोच्च-निम्न एल्गोरिदम फिर जुड़े हुए सफेद और काले क्षेत्रों को ढूंढेंगे। OpenCV में findContours () फ़ंक्शन अच्छी तरह से काम करेगा।
http://en.wikipedia.org/wiki/Connected-component_labeling
समान विकिपीडिया लेख में पारंपरिक मल्टीप्लास एल्गोरिथ्म और एकल-पास एल्गोरिथ्म दोनों शामिल हैं। मैंने वहां वर्णित एकल-पास एल्गोरिथ्म को लागू नहीं किया है, लेकिन मैंने चेन और चांग द्वारा पेपर "ए कंपोनेंट-लेबलिंग एल्गोरिदम का उपयोग कंटूर ट्रेसिंग तकनीक" में वर्णित एकल-पास एल्गोरिथ्म के साथ काम किया है। चेन और चांग द्वारा कागज भी एक मानक समोच्च-निम्न एल्गोरिथ्म का वर्णन करता है जिसे जल्दी से लागू किया जा सकता है।
यदि आपके पास दो से अधिक बनावट हैं, तो आप रंगों को रीमेक करने के बाद क्लस्टर वाटर क्षेत्रों में वाटरशेड या मीन शिफ्ट एल्गोरिदम का उपयोग कर सकते हैं । यद्यपि यह बनावट से रंग में बदलना आवश्यक नहीं है, लेकिन यह प्रक्रिया को डीबग करना और समझना आसान बनाता है।