MATLAB

2010-06-09 9 views
6

में पृष्ठभूमि घटाना मैं छवि पर पृष्ठभूमि घटाना चाहता हूं। मैं MATLAB के लिए नया हूं और छवि प्रसंस्करण/विश्लेषण के लिए नया हूं, इसलिए क्षमा करें अगर इनमें से कोई भी बेवकूफ लगता है। 1) के अलावा imsubtract() पृष्ठभूमि घटाने के लिए अन्य तरीके हैं (एक छवि को दूसरे से तुलना करने के अलावा)? 2) मैथ वर्क्स explanation में imsubtract के लिए() वे अपने संरचना तत्व को डिस्क क्यों बनाते हैं? यह अब तक मुश्किल लगता है क्योंकि हर बार जब मैं कुछ कोशिश करता हूं, तो मैं न केवल शोर पृष्ठभूमि को घटाता हूं बल्कि छवि के उन हिस्सों को भी खो देता हूं जिन्हें मैं देखना चाहता हूं!MATLAB

उत्तर

5

आप किस प्रकार की छवि के साथ काम करते हैं?

पृष्ठभूमि घटाव आसान है। यदि आप निरंतर मान घटाते हैं, या अपनी छवि के समान आकार वाले पृष्ठभूमि को घटाते हैं, तो आप बस img = img - background लिखते हैं। imsubtract बस यह सुनिश्चित करता है कि छवि शून्य से कहीं भी बड़ी हो, आउटपुट शून्य हो।

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

यदि आप हैं, उदाहरण के लिए, स्थान या लाइन विशेषताएं है कि या तो सभी या कम प्रकाश पृष्ठभूमि पर उज्ज्वल पर काले हैं, तो आप के माध्यम से एक स्थानीय अधिकतम फिल्टर (imdilate) या एक स्थानीय न्यूनतम फिल्टर (imerode) के साथ क्रमश: पारित कर सकते हैं , यह आपकी विशेषताओं से बड़ा है, ताकि जहां भी आप फ़िल्टर मास्क रखें, वहां कुछ पिक्सल हैं जो पृष्ठभूमि को कवर करते हैं। साथ ही, आप फ़िल्टर को सुविधाओं के समान कुछ समान आकार रखना चाहते हैं। आपके मामले में, यदि आप अपनी छवि का हिस्सा खो देते हैं, तो आप फ़िल्टर को बड़ा करने की कोशिश कर सकते हैं (लेकिन बहुत बड़ा नहीं)।

अधिकतम या न्यूनतम घटाने के बजाय, औसत को घटाकर अच्छी तरह से काम कर सकते हैं, हालांकि आपको फिल्टर आकार चुनना है कि फ़िल्टर मास्क के अंदर आमतौर पर पृष्ठभूमि पिक्सल का बहुमत होता है। दुर्भाग्यवश, औसत फ़िल्टरिंग धीमी है।

+0

+1 पृष्ठभूमि अनुमान कठिन है! – Geoff

+0

पृष्ठभूमि घटाव आपके सुझाव से थोड़ा अलग है। Imsubtract पृष्ठभूमि घटाव नहीं है, न ही आपने जो सुझाव दिया है। पृष्ठभूमि घटाव केवल पृष्ठभूमि पिक्सेल को प्रभावित करना चाहिए, न कि संपूर्ण छवि। एक सफेद पृष्ठभूमि पर विचार करें। अब, एक काला गेंद छवि भर में चलता है। छवि घटाव हमेशा ऑब्जेक्ट को ऑब्जेक्ट करेगा या रंग विकृत करेगा (कार्यान्वयन के आधार पर), जबकि पृष्ठभूमि घटाव पृष्ठभूमि मॉडल (अग्रभूमि) से काफी अलग पिक्सेल को प्रभावित नहीं करेगा। – Anthony

+0

@ एंथनी: यह आपके द्वारा काम की जाने वाली छवि के प्रकार पर बहुत निर्भर करता है। यदि अग्रभूमि और पृष्ठभूमि की तीव्रता additive हैं (जो मैं आमतौर पर साथ काम करता हूं), तो पृष्ठभूमि पूरी छवि से घटा दी जाती है। आपके मामले में, वास्तव में पृष्ठभूमि घटाव केवल गैर सिग्नल पिक्सेल को प्रभावित करना चाहिए। – Jonas

2

पृष्ठभूमि छवि को घटाने के लिए, आपको पृष्ठभूमि का एक मॉडल चाहिए। सबसे सरल मॉडल कुछ स्वीकार्य विचलन (+/- 0-255) के साथ पृष्ठभूमि के रूप में कब्जा कर लिया गया एक चित्र है। फिर, MATLAB में पृष्ठभूमि घटाव बहुत सरल है:

छवि (ढूंढें (abs (छवि-पृष्ठभूमि) < = दहलीज) = = 0;

जब आप एक सांख्यिकीय मॉडल का उपयोग करते हैं तो यह अधिक कठिन हो जाता है, लेकिन अनिवार्य रूप से पृष्ठभूमि को घटाना बहुत आसान है। imsubtract पृष्ठभूमि घटाव नहीं है; यह एक घटाव फ़िल्टर है जैसे आप फ़ोटोशॉप में पाएंगे। यह पृष्ठभूमि बनाम अग्रभूमि के बारे में परवाह नहीं करता है, जो तब बिंदु को हरा देता है।

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

यदि आपके पास तकनीकी लेखों (काम या विद्यालय के माध्यम से) तक पहुंच है, तो "पेंडर: रीयल-टाइम ट्रैकिंग ऑफ़ द ह्यूमन बॉडी" वेरेन और अन्य द्वारा एक बहुत ही सरल दृष्टिकोण प्रदान करता है। या आप केवल एक गॉसियन पृष्ठभूमि घटाव के लिए Google खोज सकते हैं। ओपनसीवी के साथ यहां कई विधियां लागू की गई हैं ->http://dparks.wikidot.com/source-code < - कि आप उपयोगी पा सकते हैं।

2

Computer Vision System Toolbox में vision.ForegroundDetector ऑब्जेक्ट है, जो स्टॉफर और ग्रिम्सन के जीएमएम पृष्ठभूमि घटाव का एक संस्करण लागू करता है। कार्यान्वयन बहुत तेज़ है, कई कोर लीवरेजिंग। एकाधिक ऑब्जेक्ट्स को ट्रैक करने के लिए सिस्टम के बिल्डिंग ब्लॉक के रूप में पृष्ठभूमि घटाव का उपयोग करने के तरीके के बारे में example देखें।