Efektywne odejmowanie tła z OpenCV

Chcę zrobić odejmowanie tła w pliku wideo metodą OpenCV. W tej chwili jestem w stanie zrobić odejmowanie tła, ale problem polega na tym, że nie mogłem uzyskać wyjścia w trybie kolorów. Wszystkie dane wyjściowe po odjęciu tła są dostępne w trybie kolorów w skali szarości:(. Chcę uzyskać informacje o kolorze na pierwszym planie, który jest wynikiem po odjęciu tła.

Czy Mogę to zrobić techniką maskowania?? jak w poniższej procedurze, którą jestem myślę o tym.

  1. Capture Input -- InputFrame (RGB)
  2. proces InputFrame
  3. Odejmij tło, zachowaj pierwszy plan w TempFrame (który pojawia się w skali szarości :( )
  4. tworzenie maski za pomocą TempFrame
  5. Zastosuj utworzoną maskę do InputFrame
  6. uzyskaj kolorowy pierwszy plan jako OutFrame

Jestem zachwycony wykonywaniem maskowania za pomocą OpenCV. Jestem po prostu bardzo początkującym w OpenCV. Proszę, pomóż mi to przezwyciężyć.

Dzięki w naprzód.

Author: Angie Quijano, 2010-01-08

2 answers

Ok, nie rozumiem, jak TempFrame (twój pierwszy plan) może być w skali szarości, jeśli używasz odejmowania tła. Musisz używać specjalnego algorytmu. Ale zakładając, że TempFrame jest w skali szarości, zrobisz to:

cv::Mat mask = tempFrame > 0.5;

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

To jest kod OpenCV 2.0 powyżej. Liczba 0.5 to próg, musisz ustawić go na coś odpowiedniego. Jeśli nie używasz obrazów zmiennoprzecinkowych, prawdopodobnie ustawisz je na 128 lub coś w tym stylu. To samo jest w OpenCV 1.1 kod:

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);
 11
Author: Ray Hidayat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-17 11:02:51

Http://vimeo.com/27477093

Kod jest tutaj

Http://code.google.com/p/derin-deli-mavi/downloads/detail?name=denemeOpenCv23.zip&can=2&q=

Aby osiągnąć kolorowy pierwszy plan po prostu skopiuj obraz za pomocą maski pierwszoplanowej

// image.copyTo (pierwszoplanowy,pierwszoplanowy);

 21
Author: Birol Kuyumcu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-14 22:45:16