के साथ समोच्च अनुमान, मैं आकृति डिटेक्शन के लिए छोटा एप्लीकेशन लिख रहा हूं। मुझे पहली जगह में क्या करने की ज़रूरत है, यह छवि पर सबसे महत्वपूर्ण आकार ढूंढना है। मैंने कुछ preprocessing से शुरू किया जिसमें छवि को ग्रेस्केल, थ्रेसहोल्डिंग और एज डिटेक्शन में कनवर्ट करना शामिल है। पहले और इन आपरेशनों के बाद छविआकृति का पता लगाने - ओपनसीवी
नीचे प्रस्तुत किया जाता है इससे पहले कि
तो बाद के रूप में आप देख सकते हैं मुख्य आकृति दिखाई देता है (हालांकि यह थोड़ा बिखरे हुए है) और कुछ शोर भी हैं (छोटे पेड़ आदि)। मुझे क्या करना है किसी भी तरह से केवल सबसे महत्वपूर्ण आकार (सबसे बड़ा) निकालना है - इस मामले में यह एक टावर है। मैं जो करना चाहता था वह ओपनसीवी में समोच्च खोज फ़ंक्शन का उपयोग करना है और फिर किसी भी तरह बहुभुज के साथ contursximate contursximate पाया जाता है। तब मैं (किसी भी तरह) काउंटर के क्षेत्र की गणना करता हूं और केवल सबसे बड़ा चुनता हूं। अब तक मैं manged (केवल) का उपयोग करते हुए आकृति को खोजने के लिए
cvFindContours(crated,g_storage,&contours);
मैं जानता हूँ कि एक
cvApproxPoly
समारोह है कि वहाँ है, तथापि मैं इस समारोह का परिणाम के लिए किसी भी उपयोगी जानकारी प्राप्त करने में सक्षम नहीं कर रहा हूँ । क्या कोई मुझे बता सकता है कि समोच्च क्षेत्र की गणना करना या बहुभुज के साथ contur अनुमानित करना संभव है। हो सकता है कि आपके पास एक बेहतर विचार है कि केवल सबसे महत्वपूर्ण आकार निकालने के लिए कैसे?
बिनाराइज़ेशन प्रक्रिया में एक एडिशन के रूप में। एक अच्छा थ्रेसहोल्ड वैल्यू ढूंढना हमेशा कठिन होता है। मैं हमेशा एक हिसाग्राम की गणना करता हूं और "लो प्वाइंट" की खोज करता हूं। वहां आपके पास आमतौर पर एक निचला थ्रेसहोल्ड मान होता है। यदि आप जेपीईजी का उपयोग कर रहे हैं तो यह विधि बहुत अच्छी तरह से काम नहीं कर सकती है। –