I'm newbie with OpenCV + C++ + Visual Studio 2012. And now I need to learn them. I just learned how to substract the background and extract the foreground. Here's the code for background substraction/foreground extraction.
include opencv2/opencv.hpp include iostream include vector int main(int argc, char *argv[]) { cv::Mat frame; cv::Mat bgmodel; cv::Mat fg; cv::VideoCapture cap(0);cv::BackgroundSubtractorMOG2 bg; bg.nmixtures = 3; bg.bShadowDetection = true; std::vector<std::vector<cv::Point> > contours; cv::namedWindow("Frame"); cv::namedWindow("Background Model"); for(;;) { cap >> frame; bg.operator ()(frame,fore); bg.getBackgroundImage(bgmodel); cv::erode(fg,fg,cv::Mat()); cv::dilate(fg,fg,cv::Mat()); cv::findContours(fg,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE); cv::drawContours(frame,contours,-1,cv::Scalar(0,0,255),2); cv::imshow("Frame",frame); cv::imshow("Background Model",bgmodel); if(cv::waitKey(30) >= 0) break; } return 0;
}
and now I want to build blobs from the extracted foreground. what should I do with my code? thanks. :)