#include "stdafx.h" //for vc2015 version.
#include "opencv2/opencv.hpp"
#include "opencv2/video/background_segm.hpp"
using namespace cv;
using namespace std;int main()
{
VideoCapture cap(0);//打开默认的摄像头
if (!cap.isOpened())
{
return -1;
}
int frameNum = 1;
Mat frame, mask, thresholdImage, output;
//cout<<video.isOpened();
cap >> frame;
Ptr<BackgroundSubtractorMOG2> bgsubtractor = createBackgroundSubtractorMOG2();
bgsubtractor->setVarThreshold(120);
Mat fgimg;
while (true) {
cap >> frame;
++frameNum;
if (fgimg.empty())
fgimg.create(frame.size(), frame.type());
//bgSubtractor(frame, mask, 0.001);
bgsubtractor->apply(frame, mask, 0.01);
fgimg = Scalar::all(0);
frame.copyTo(fgimg, mask);
imshow("mask", mask);
imshow("foreground image", fgimg);
if (waitKey(30) == 27) //Esc键退出
{
break;
}
}
return 0;
}