जब आप किसी छवि से रूपरेखा प्राप्त करते हैं, तो आपको प्रत्येक ब्लॉब में 2 रूपरेखा मिलनी चाहिए - एक आंतरिक और एक बाहरी। नीचे दिए गए चक्र पर विचार करें - चूंकि सर्कल एक पिक्सेल चौड़ाई वाली एक रेखा है जो एक से बड़ी है, तो आपको छवि में दो रूपों को खोजने में सक्षम होना चाहिए - एक सर्कल के भीतरी भाग से और बाहरी भाग से एक।OpenCV में Contours ढूँढना?
ओपनसीवी का उपयोग करके, मैं INNER contours को पुनर्प्राप्त करना चाहता हूं। हालांकि, जब मैं findContours() का उपयोग करता हूं, तो मुझे केवल बाहरी रूप मिलते हैं। ओपनसीवी का उपयोग करके मैं ब्लॉब के आंतरिक रूपों को कैसे प्राप्त करूं?
मैं सी ++ एपीआई का उपयोग कर रहा हूं, सी नहीं, इसलिए केवल सी ++ एपीआई का उपयोग करने वाले कार्यों का सुझाव देता है। (यानी cvFindContours())
धन्यवाद।
क्या आप हमें कुछ कोड दिखा सकते हैं? – SSteve
ठीक है, मेरे पास वास्तव में कोई अद्वितीय कोड नहीं है। मेरे पास सिर्फ एक मैट है जिसे मैं कैमरे से पुनर्प्राप्त करता हूं। मैं उस पर कैनी एज डिटेक्टर चलाता हूं, और फिर findContours() का उपयोग करके समरूपता पाता हूं। पाए गए सभी समोच्च वेक्टर <वेक्टर> में संग्रहित होते हैं। मूल रूप से मेरे पास बस इतना है कि वास्तविक कोड पोस्ट करने में मुझे बहुत कुछ नहीं है - यह सिर्फ समोच्च खोजने की पारंपरिक प्रक्रिया है। –
fdh
मैंने समोच्चों के साथ थोड़ा सा काम किया है, हालांकि मेरी रूचि केवल बाहरी रूपों में थी। मैंने 'drawContours()' के साथ एक समोच्च रंग लगाने की कोशिश की। जो एक प्रकार की पदानुक्रम से बचता है। 'ड्रॉकंटर्स()' पर नमूना जिसका मैंने उपयोग किया था, आंतरिक रंगों को रंग नहीं था। मैं यहां क्या प्राप्त करने की कोशिश कर रहा हूं, यह है कि आपको शायद उन्हें खोजने के लिए 'findContours()' से पदानुक्रम सरणी का उपयोग करने की आवश्यकता है। (कारण मैं उत्तर नहीं पोस्ट करता हूं कि इस पदानुक्रम का मेरा ज्ञान सीमित है, मैं इस मामले पर आपको भ्रमित नहीं करना चाहता हूं। मैंने इन पर कुछ परीक्षण किया है और मैं अब तक अपनी समझ समझा सकता हूं, अगर आप अनुरोध करते हैं।) – Sonaten