2012-07-29 18 views
9

में ओवरलैपिंग सर्किलों से बने समोच्चों को फ़िल्टर करने के लिए कैसे करें I ओपनसीवी/सी ++ फ्रेमवर्क का उपयोग करके, मैं ऐसे प्रोग्राम पर काम कर रहा हूं जो मूल रूप से अंडाकार वस्तुओं को ओवरलैप कर सकता है।ओपनसीवी

सीमा छवि और सभी वस्तुओं की खोजने आकृति के बाद

मेरे अगले कदम को छोड़कर उद्देश्य यह है कि अनेक बिंदुओं ओवरलैपिंग से बना नहीं कर रहे हैं शामिल है (मैं लूंगा खंड शेष लोगों को बाद में)।

मैं अंत तक वस्तुओं के साथ इस तरह के इन लोगों के रूप में:

enter image description here

इस उदाहरण छवि में, सही में सभी वस्तुओं को नकारात्मक, जबकि बाएं भाग में स्थित लोगों को मान्य हैं कर रहे हैं।

मेरा वर्तमान फ़िल्टर मुख्य रूप से उनके isoperimetric quotient के आधार पर वस्तु को शामिल करता है। हालांकि, जैसा कि मेरे पास विभिन्न आकार और शोर की विशेषता वाली वस्तुएं हैं, मैं हमेशा इस दृष्टिकोण से संतुष्ट नहीं हूं।

आदर्श रूप से, मैं अपने वर्तमान फ़िल्टर की दक्षता बढ़ाने के लिए एक अतिरिक्त मीट्रिक लेना चाहता हूं।

चूंकि मुझे इस तरह के विश्लेषण को कई रूपों में दोहराना है, इसलिए यह महंगा नहीं होना चाहिए।

  • कुछ समोच्च में लगातार अंक के सभी तीन के बीच के कोण के मूल्य का एक हिस्टोग्राम के आधार पर:

    मैं जैसे तरीकों के बारे में सोचा है?

  • गणितीय रूप से "पॉली-एलीपसे" को फ़िट करना (मुझे यह नहीं पता होगा कि यह कैसे करें)?
  • मैच फ्रीमैन चेन?

लेकिन मुझे पूरा विश्वास है कि मुझे कुछ स्पष्ट याद आया जो अधिक कुशल और कम गन्दा है। , आप किसी भी सुझाव है, धन्यवाद :) क्या

संपादित करें: रेगिस के रूप में ठीक ही सुझाव दिया, किसी भी आकार वास्तव में हलकों की एक पर्याप्त संख्या का बनाया जा सकता है। इसलिए, मेरी समस्या व्याख्या करने योग्य बनाने के लिए, मैं निम्नलिखित मान्यताओं जोड़ देगा:

  1. नहीं 16 से भी अधिक दीर्घवृत्त/वस्तु।
  2. दीर्घवृत्त फ्लैट के लिए नहीं किया जा सकता: प्रमुख धुरी/मामूली अक्ष < 3.
  3. एक वस्तु के भीतर, छोटी से छोटी एक के क्षेत्र में सबसे बड़ा अंडाकार के क्षेत्र में 10 से कम होना चाहिए।

उत्तर

2

एक संभावना यह कोशिश करने के लिए होगा: समोच्च

  • साथ नियमित रूप से रिक्ति पर
  • नमूना अंक वस्तुओं की

    1. निकालें आकृति नियमित रिक्ति पर दिशा निर्धारित करने के इन बातों का उपयोग करें (यह हो सकता है रैपरराउंड समस्याओं से बचने के लिए इस दिशा को व्यक्त करने के लिए एक जटिल संख्या का उपयोग करने के लिए सबसे अच्छा हो)
    2. नियमित दूरी पर वक्रता की गणना करने के लिए इन दिशाओं का उपयोग करें
    3. इस वक्रता पर एक मीट्रिक बेस करें, उदा। सही सीमा में वक्रता नमूने के 80% से अधिक वस्तुओं की तलाश करें।

    ग्राफ आप वक्रता के लिए देखने के लिए उम्मीद कर रहे हैं, अचानक discontinuities जहां यह एक से दूसरे चक्र से बदल जाता है के साथ (यदि आकार के बजाय एक अंडाकार एक चक्र है या धीरे-धीरे बदलती) निरंतर मूल्यों की एक श्रृंखला है।

    यदि आपकी छवि शोर है, तो आप पहले वक्रता मानों को फ़िल्टर करना चाहते हैं।

    मंडलियों/अंडाकारों से बने आकारों में ज्यादातर परिधि के चारों ओर महत्वपूर्ण वक्रता होगी, जबकि सीधे किनारों से बने आकारों में कम वक्रता के हिस्से होंगे।

  • +0

    आप से, मैं अपने सिर को उसके चारों ओर बनाने की कोशिश करूंगा। क्या आपके पास कोई लिंक है जिसके साथ मैं शुरू कर सकता हूं? –

    0

    मुझे संदेह है कि किसी भी आकार को ओवरलैपिंग इलिप्स के पर्याप्त बड़े सेट से बनाया जा सकता है और आपके हाथों में एक बीमार परिभाषित समस्या है। जब तक मैं आपकी समस्या का विवरण गलत नहीं समझता।

    +0

    धन्यवाद, आप सही हैं, पर्याप्त संख्या में छोटे सर्किल/इलिप्स वास्तव में किसी भी आकार को परिभाषित कर सकते हैं। मुझे अतिरिक्त धारणाएं (जो मेरी समस्या के लिए उचित हैं) कहा जाना चाहिए था: 1) 10 से अधिक ओवरलैपिंग मंडलियों का निरीक्षण करना बहुत संभावना नहीं है। 2) उसी आकार के भीतर, सबसे छोटे अंडाकार का क्षेत्र सबसे बड़ा क्षेत्रफल का दसवां हिस्सा नहीं होगा। –

    0

    क्या आपने सर्कल और अंडाकारों के लिए Hough-Transformations देखा है? उपलब्ध सर्किलों के लिए OpenCV implementation भी है। इन परिवर्तनों को आपकी वस्तुओं के रूप में लागू किया जाना चाहिए।

    +0

    धन्यवाद, मैंने वास्तव में कोशिश की है, धन्यवाद: डी। मेरे लिए, यह क्लैंप किए गए ऑब्जेक्ट्स पर खराब काम करता है ... अब मैं निम्न दृष्टिकोण की जांच कर रहा हूं: 1) सकारात्मक बनाम नकारात्मक नमूने की लाइब्रेरी बनाना। 2) बाइनरी छवियों से सुविधाओं की गणना। 3) वर्गीकरण को प्रशिक्षित करने के लिए मशीन सीखने की तकनीक का उपयोग करना ... –