视频中运动物体(前景)与背景分离的方法BackgroundSubtractorMOG2应用

#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;
}

猜你喜欢

转载自blog.csdn.net/fu_shuwu/article/details/79315240