因为opencv版本的不同,相应函数的使用方法也不同,本例程是基于opencv3.0.0的。
参考:
http://blog.csdn.net/h_wlyfw/article/details/38731589?utm_source=tuicool&utm_medium=referral
http://blog.csdn.net/xiaowei_cqu/article/details/23689189
http://bbs.csdn.net/topics/390908921
#include<opencv2/opencv.hpp>
#include<opencv2/video/background_segm.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture capture("C:\\Users\\aoe\\Desktop\\avi\\walk.avi");
if (!capture.isOpened())
return -1;
namedWindow("soure");
namedWindow("foreground");
Mat frame, foreground;
int delay = 1000 / capture.get(CV_CAP_PROP_FPS);
//BackgroundSubtractorMOG bgsubtractor(10, 10, 0.5, false);
Ptr<BackgroundSubtractorMOG2> mod = createBackgroundSubtractorMOG2();
while (true)
{
if (!capture.read(frame))
break;
mod->apply(frame, foreground, 0.01);
imshow("soure", frame);
imshow("foreground", foreground);
waitKey(delay);
}
waitKey();
return 0;
}