本章内容
* 移动目标跟踪
* 1.MOG背景消除法
* 2.KNN背景消除法
输出结果:
源码:
#include <opencv2/opencv.hpp>
#include <iostream>int main(int argc, char* argv[]){
/*本章内容
* 移动目标跟踪
* 1.MOG背景消除法
* 2.KNN背景消除法
*/
cv::VideoCapture vCap;
bool ret = vCap.open("/home/wang/dev/Image/video_004.avi");
if(!ret){
std::cout << "视频打开失败\n";
return -1;
}
cv::Mat frame;
cv::Mat frame1;
ret = vCap.read(frame1);
int key;
cv::Ptr<cv::BackgroundSubtractor> mog2 = cv::createBackgroundSubtractorMOG2();
cv::Mat maskMOG;
cv::Ptr<cv::BackgroundSubtractor> KNN = cv::createBackgroundSubtractorKNN();
cv::Mat maskKNN;
while(1){
key = cv::waitKey(20);
ret = vCap.read(frame);
if(!ret) break;
cv::imshow("videao",frame);
mog2->apply(frame,maskMOG);
cv::imshow("maskMOG",maskMOG);
KNN->apply(frame,maskKNN);
cv::imshow("maskKNN",maskKNN);
}
vCap.release();
cv::waitKey(0);
return 1;
}