मार्चिंग वर्ग: एक स्रोत क्षेत्र में कई आकृति खोजना?


9

मुख्य रूप से, यह कुछ हफ़्ते पहले से एक समस्या का अनुवर्ती सवाल है , भले ही यह सामान्य रूप से एल्गोरिथ्म के बारे में मेरी वास्तविक समस्या के लिए आवेदन के बिना है।

एल्गोरिथ्म मूल रूप से चित्र में सभी पंक्तियों के माध्यम से खोज करता है, इसके शीर्ष बाएं से शुरू होता है, जब तक कि यह एक पिक्सेल नहीं पाता है जो एक सीमा है। छद्म-सी ++ में:

int start = 0;
for(int i=0; i<amount_of_pixels; ++i)
{
   if(pixels[i] == border)
   {
      start = i;
      break;
   }
} 

जब यह एक मिल जाता है, यह अग्रभाग वर्गों एल्गोरिथ्म शुरू होता है और पिक्सेल जो भी वस्तु के समोच्च पाता है।

मान लीजिए कि मेरे पास ऐसा कुछ है:

यहाँ छवि विवरण दर्ज करें

जहां रंग सफेद को छोड़कर सब कुछ एक सीमा है।

और पहले बूँद के समोच्च बिंदु पाए हैं:

यहाँ छवि विवरण दर्ज करें

सामान्य एल्गोरिथ्म के लिए यह खत्म हो गया है। यह एक समोच्च पाया और अपना काम किया है। मैं अपने कंट्रोवर्स को खोजने के लिए अन्य दो ब्लब्स पर कैसे आगे बढ़ सकता हूं?


जवाबों:


7

क्या आप इसे पृष्ठभूमि रंग में आकर्षित करके बहुभुज को मिटा सकते हैं और तब तक दोहरा सकते हैं जब तक कि कुछ भी शेष न हो?


1
ऐसा ही होना चाहिए। पृष्ठभूमि (या किसी अन्य रंग) के साथ पाए गए तत्व को भरें और खोज जारी रखें (आप उस बिंदु पर जारी रख सकते हैं जहां आपने पहला "मैच" पाया था)
बुमज़ैक

ओह वाह। मुझे बाढ़-भराव के बारे में भी नहीं पता था। धन्यवाद।
ट्रेविसग


1

एक अन्य सरणी में बूँद जानकारी को क्यों नहीं सहेजा जाता है और अगर नए पाए गए पिक्सल पहले वाले बूँद के बाउंडिंग बॉक्स के भीतर आते हैं तो जाँच क्यों नहीं करते? पहले के बूँद के केंद्रबिंदु के नीचे की खामियों से निपटने के लिए कुछ और हेरफेर की आवश्यकता होगी और जो बाउंडिंग बॉक्स के भीतर आते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.