सतह का पता लगाने


9

एक छवि से ग्रे का एक क्षेत्र बड़े क्षेत्र (सफेद से काले तक) कैसे होगा? (यदि आप इसे opencv में जानते हैं, तो आप यह कहकर जवाब दे सकते हैं कि आप opencv में क्या करेंगे)। उदाहरण के लिए यह चित्र दिया गया है:

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

आप देखते हैं कि यह ग्रे का एक बड़ा क्षेत्र है और यह बाकी हिस्सों से स्पष्ट रूप से अलग है। यदि आप इस क्षेत्र को ग्रे की कोई भी छाया दे सकते हैं, तो आप इसे कैसे सेग कर सकते हैं और इसे वास्तविक समय में काम करना होगा।

अग्रिम में Thx।


मुझे कई ग्रे क्षेत्र स्पष्ट रूप से अलग दिखाई देते हैं। क्या आप अपना वांछित परिणाम दिखा सकते हैं?
डॉ। बेलिसियस

मेरा वांछित परिणाम शीर्ष दाएं और बाएं कोनों का समन्वय है और मध्य ग्रे आयत के बाएं निचले कोने का समन्वय है
ओलिवियर_स_ज

क्या आप हमें पर्यावरण और संभावित छवियों के बारे में कुछ और बता सकते हैं जिन्हें आपको संसाधित करने की आवश्यकता होगी? क्या लक्ष्य हमेशा छवि के बीच में होगा? क्या अन्य ग्रे आयतें मौजूद होंगी, संभवतः एक ही आकार की? क्या होगा अगर वे ग्रे के समान छाया के रूप में दिखाते हैं? क्या कोई अन्य चीजें हैं जो हम इसे पहचानने के लिए उपयोग कर सकते हैं? क्या यह हमेशा शीर्ष पर छोटे "टी" आकार का होगा?
justis

नमस्ते, लक्ष्य अभ्यस्त हमेशा छवि के बीच के पास होना चाहिए। लक्ष्य हमेशा किसी न किसी तरह का आयत होगा। (यह सिर्फ एक दीवार भी हो सकती है)। यदि कई आयतें हैं, तो उन्हें भी पता लगाया जाना चाहिए, लेकिन वे बड़े होने चाहिए। छोटे क्षेत्रों को त्याग दिया जा सकता है। यदि वे सभी एक ही तरह के ग्रे के रूप में दिखाई देते हैं, तो उन्हें सभी का पता लगाया जाना चाहिए, लेकिन ऐसा होने की संभावना बहुत कम है। केवल वास्तविक संपत्ति का पता लगाया जा सकता है कि पूरी सतह के ऊपर एक सतह एक ही ग्रे (अधिक या कम) होगी, और यह एक आयत है। हर बार एक छोटे से टी आकार का टॉप नहीं होगा
ओलिवियर_एस_ज

जवाबों:


9

आपको वाटरशेड एल्गोरिथ्म या ग्राफ कट का उपयोग करके ग्रे क्षेत्र का एक उचित विभाजन मिलेगा । वाटरशेड opencv में उपलब्ध है, लेकिन ग्राफ में कटौती अभी तक नहीं हुई है। (BTW यह Kinect से एक गहरा नक्शा है?)


1
Opencv में वाटरशेड फ़ंक्शन को इनपुट के रूप में 8-बिट 3 चैनल छवि की आवश्यकता होती है। मेरा गहराई का नक्शा एक 8-बिट 1 छवि है। कुछ पता है इसे कैसे हल करना है?
ओलिवियर_स_ज 18

/ * छवि गुण प्राप्त करें / चौड़ाई = src-> चौड़ाई; ऊँचाई = src-> ऊँचाई; / ग्रेस्केल संस्करण के लिए नई छवि बनाएं * / IplImage * dst = cvCreateImage (cvSize (चौड़ाई, ऊंचाई), IPL_DEPTH_8U, 1); cvCvtColor (src, dst, CV_RGB2GRAY);
नव

एक और सवाल है, मैं सिर्फ एक और छवि में काम वाटरशेड समारोह मिला (सिर्फ opencv से एक उदाहरण)। लेकिन वे एक रंगीन छवि और एक द्विआधारी छवि के साथ शुरू करते हैं। मेरे पास केवल 1 छवि है ... ग्रेस्केल छवि। मुखौटा (दूसरा इनपुट चर) क्या होना चाहिए इसका कोई भी विचार?
ओलिवियर_स_ज 17

4

गणित में आप कुछ ऐसा कर सकते हैं:

Colorize[MorphologicalComponents[
  ColorNegate@
   Erosion[Dilation[
     DeleteSmallComponents[
      Erosion[Binarize[
        GradientFilter[
         ColorConvert[Import@"http://i.stack.imgur.com/XdnaW.png", 
          "RGB"], 2], .015], 1], 100], 2], 2]], 
 ColorFunction -> "ThermometerColors"]

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

संभवतः आप इस कोड को किसी भी इमेज प्रोसेसिंग लिब में ट्रांसलेट कर सकते हैं।


हाय, अच्छा लग रहा है। लेकिन मेरे पास गणित नहीं है। लेकिन मैं अनुमान लगा रहा हूँ कि आपने इस चित्र के ग्रेस्केल के आधार पर थ्रॉल्डिंग का उपयोग किया है? शायद आप अपने कोड के साथ थोड़ी जानकारी दे सकते हैं? Thx
ओलिवियर_स_ज

1
@Ojt प्रत्येक कमांड के लिए आप विवरण के लिए " reference.wolfram.com/mathematica/ref/xxx.html " पढ़ सकते हैं । उदाहरण के लिए संदर्भ
.wolfram.com/mathematica/ref/…

ठीक है, जैसा आपने सुझाव दिया था। लेकिन ऐसा लगता है कि आप बिनाराइज़ का उपयोग किसी दिए गए मूल्य पर करने के लिए कर रहे हैं। जो मेरे मामले में संभव नहीं है। चूंकि बड़े क्षेत्रों में ग्रे के विभिन्न शेड हो सकते हैं। (उदाहरण के लिए बीच की सतह बहुत हल्की हो सकती है)। और फिर दहलीज नहीं चलेगी।
ओलिवियर_स_ज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.