BackgroundSubtractor cplusplus例子
时间: 2023-04-03 16:04:50 浏览: 105
BackgroundSubtractor是OpenCV中的一个背景减法算法,可以用于视频中的前景检测。以下是一个C++的例子:
```
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
VideoCapture cap(0);
if (!cap.isOpened()) {
cerr << "Error opening video capture" << endl;
return -1;
}
Mat frame, fgMask;
Ptr<BackgroundSubtractor> pBackSub = createBackgroundSubtractorMOG2();
while (true) {
cap >> frame;
if (frame.empty()) {
cerr << "End of video" << endl;
break;
}
pBackSub->apply(frame, fgMask);
imshow("Frame", frame);
imshow("FG Mask", fgMask);
int keyboard = waitKey(30);
if (keyboard == 'q' || keyboard == 27) {
break;
}
}
cap.release();
destroyAllWindows();
return 0;
}
```
该例子使用了createBackgroundSubtractorMOG2()函数创建了一个MOG2背景减法器,然后在每一帧中使用apply()函数进行前景检测,并将结果显示在窗口中。
阅读全文