2011-01-24 16 views
8

मेरे पास एक ऐसी छवि है जो गहराई से गर्मी है जिसे मैंने छवि के पहले 25% से कहीं और दूर फ़िल्टर किया है।किसी छवि में रंग का ब्लॉब ढूंढना

यह इस तरह दिखता है: enter image description here

छवि में रंग के दो धब्बे होते हैं, एक (इसके पीछे मेरे चेहरे के हिस्से के साथ) मेरे हाथ है, और अन्य निचले बाएँ में डेस्क है कोने। इन ब्लब्स को खोजने के लिए मैं छवि को कैसे खोज सकता हूं? यदि संभव हो तो मैं उनके चारों ओर एक आयत खींचने में सक्षम होना चाहूंगा।

मैं भी ऐसा कर सकते हैं (रंगों की अनदेखी, और काला या सफेद के लिए फ़िल्टर): enter image description here

उत्तर

2

यह आपकी आवश्यकता के लिए अधिक हो सकता है, लेकिन ओपनसीवी पुस्तकालयों के लिए सी # के लिए एक महान रैपर है।

मैंने सफलतापूर्वक ब्लॉब डिटेक्शन के लिए सी ++ में ओपनसीवी का उपयोग किया है, ताकि आप जो भी करने की कोशिश कर रहे हैं उसके लिए आपको यह उपयोगी लगे।

http://www.emgu.com/wiki/index.php/Main_Page

और OpenCV पर विकि पृष्ठ:

http://en.wikipedia.org/wiki/OpenCV

संपादित जोड़ने के लिए: यहाँ सी # में Emgu के लिए एक धब्बे का पता लगाने पुस्तकालय है। अवरोही क्षेत्र (शोर को फ़िल्टर करने के लिए उपयोगी) द्वारा ब्लॉब्स को ऑर्डर करने की कुछ अच्छी विशेषताएं भी हैं।

http://www.emgu.com/forum/viewtopic.php?f=3&t=205

संपादित करें फिर:

तो Emgu भी हैवीवेट है, Aforge.NET भी कुछ ब्लॉब का पता लगाने के तरीके शामिल हैं

http://www.aforgenet.com/framework/

2

यदि छवि वास्तव में केवल दो या अधिक अलग रंग (रंग के बीच बहुत कम कलंक) है, यह एक आसान है edge detection एल्गोरिदम के लिए मामला।

+0

यदि आवश्यक हो तो मैं उन्हें बिल्कुल दो रंग बना सकता हूं। मैं एक ताप नक्शा फ़िल्टर कर रहा हूं – Malfist

+0

फिर आपको किनारे का पता लगाने एल्गोरिदम के साथ ठीक होना चाहिए। समस्या रंगों के साथ नहीं है, लेकिन पिक्सेल पर परिवर्तन। यदि आपके पास बहुत अंतर है, तो यह बहुत आसान है - और यह एक हीटमैप पर लागू होता है। हालांकि, मैं एल्गोरिदम के एक विशिष्ट कार्यान्वयन के साथ आपकी मदद नहीं कर सकता। – Femaref

1

आपने इस प्रश्न की कोड नमूना की तरह कुछ का उपयोग कर सकते हैं: find a color in an image in c#

यह आप एक्स/अपनी छवि में विशिष्ट रंगों के y खोजने में मदद मिलेगी। फिर आप अपने आयतों को आकर्षित करने के लिए न्यूनतम x/अधिकतम x और min y/max y का उपयोग कर सकते हैं।

3

एक बीज पिक्सेल के रूप में एक यादृच्छिक पिक्सेल चुनें। यह क्षेत्र ए बन जाता है जब तक ए को बड़ा नहीं मिलता है तब तक ए का विस्तार किया जाता है। वह आपका क्षेत्र है।

तरह से एक विस्तार करने के लिए एक के लिए पड़ोसी पिक्सल, की तलाश कर रहा है वे इसी तरह के रंग ए

में कम से कम एक पड़ोसी पिक्सेल को "समान रंग" करने के लिए आप कुछ हद तक चर रहा है इसका मतलब है कि इस तरह के। यदि आप एक और जवाब में कहते हैं, तो आप बिल्कुल दो रंग बना सकते हैं, फिर "समान" "बराबर" है। अन्यथा, "समान" का अर्थ उन रंगों का होगा जिनके पास आरजीबी मूल्य हैं या क्या नहीं है जहां दोनों रंगों का प्रत्येक घटक एक दूसरे की छोटी मात्रा में है (यानी 255, 128, 128 252, 125, 130 के समान है)।

आप चयनित पिक्सल को भी सीमित कर सकते हैं ताकि वे बीज पिक्सेल के समान हों, लेकिन जब मनुष्य बीज उठा रहा है तो यह बेहतर काम करता है। (मेरा मानना ​​है कि यह फ़ोटोशॉप में किया गया है, उदाहरण के लिए।)

यह किनारे का पता लगाने से बेहतर हो सकता है क्योंकि आप उन्हें अस्तित्व से बाहर फ़िल्टर किए बिना ग्रेडियेंट से निपट सकते हैं, और आपको परिणामस्वरूप पता लगाने की आवश्यकता नहीं है एक सुसंगत क्षेत्र में किनारों। इसका नुकसान यह है कि एक ढाल काला से सफेद तक जा सकता है और यह उसी क्षेत्र के रूप में पंजीकृत होगा, लेकिन यह वही हो सकता है जो आप चाहते हैं। इसके अलावा, आपको कार्यान्वयन से सावधान रहना होगा या अन्यथा यह बहुत धीमा होगा।

0

सी # द्वारा वस्तु रंग के आधार पर छवि से वस्तु का पता लगाने

अपने रंग के आधार पर ऑब्जेक्ट का पता लगाने के लिए, एक आसान एल्गोरिदम है आर। आपको एक फ़िल्टरिंग विधि चुननी है। कदम सामान्य रूप से

हैं छवि लो उर छानने लागू घटाना पृष्ठभूमि greyscalling लागू करें और उर वस्तुओं सभी वस्तुओं स्थिति वस्तुओं निशान सबसे पहले यू एक फ़िल्टर विधि का चयन करने के लिए है लगता है, वहाँ कई छानने प्रदान की विधि हैं मिलता है सी # के लिए। मुख्य रूप से मैं aforge फिल्टर पसंद करते हैं, इस उद्देश्य के लिए वे कुछ फिल्टर है वे कर रहे हैं

ChannelFiltering HSLFiltering YCbCrFiltering EuclideanColorFiltering मेरी पसंदीदा यह आसान और सरल है EuclideanColorFiltering है ColorFiltering। अन्य फ़िल्टरिंग के लिए आप यहां उनके बारे में और जान सकते हैं। यू को यूआर कोड में लागू करने के लिए अफर्ज डीएलएल डाउनलोड करना होगा। सटीक चरणों के बारे में अधिक जानकारी यहां मिल सकती है: Link

संबंधित मुद्दे