2010-01-08 11 views
7

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

मैं इसे तकनीक मास्किंग का उपयोग कर सकते हैं? ? निम्न कार्यविधि जो मैं के बारे में सोच रहा हूँ की तरह

  1. कब्जा इनपुट -। InputFrame (RGB)
  2. प्रक्रिया InputFrame
  3. घटाना पृष्ठभूमि, TempFrame में दुकान अग्रभूमि (जो भूरे रंग में आ रहा है पैमाने :()
  4. एक मुखौटा TempFrame
  5. बनाएं InputFrame
  6. करने के लिए बनाया मुखौटा लागू करें, जैसे OutFrame

रंग अग्रभूमि जाओ मैं मास्किंग OpenCV का उपयोग कर कर के साथ मारा हूँ। मैं ओपनसीवी में सिर्फ एक बहुत ही शुरुआत कर रहा हूं। कृपया इसे दूर करने में मेरी मदद करें।

अग्रिम धन्यवाद।

उत्तर

10

ठीक है, मुझे समझ में नहीं आता है कि अगर आप पृष्ठभूमि घटाव का उपयोग कर रहे हैं तो TempFrame (आपका अग्रभूमि) ग्रेस्केल हो सकता है। आपको एक बहुत ही विशेष एल्गोरिदम का उपयोग करना होगा। लेकिन यह सोचते हैं TempFrame ग्रेस्केल है, तो आप इस करना होगा:

cv::Mat mask = tempFrame > 0.5; 

cv::Mat outFrame; 
capturedFrame.copyTo(outFrame, mask); 

OpenCV 2.0 कोड के ऊपर है कि। संख्या 0.5 एक सीमा है, आपको इसे उचित कुछ पर सेट करने की आवश्यकता होगी। यदि आप फ़्लोटिंग-पॉइंट छवियों का उपयोग नहीं कर रहे हैं, तो आप शायद इसे 128 या उस तरह कुछ सेट कर देंगे। यह OpenCV 1.1 कोड में एक ही बात है:

CvMat* mask = cvCreateMat(tempFrame.rows, tempFrame.cols, CV_8UC1); 
cvCmpS(tempFrame, 0.5, mask); 

CvMat* outFrame = cvCreateMat(capturedFrame.rows, capturedFrames.cols, CV_32FC3); 
cvCopy(capturedFrame, outFrame, mask); 
+0

धन्यवाद, लेकिन मुझे अभी भी आश्चर्य है कि इंटरनेट पर आने वाले बीजीएस के लिए सभी उदाहरण और कोड केवल ग्रेस्केल आउटपुट उत्पन्न करते हैं? वैसे भी .. फिर से धन्यवाद। – Jabez

+0

ओह ठीक है, मुझे लगता है कि ग्रेस्केल के साथ पृष्ठभूमि घटाव करना इतना आसान है, इसलिए शायद यही कारण है। वीडियो डेमो के लिए –