本章内容
     * 移动目标跟踪
     * 1.MOG背景消除法
     * 2.KNN背景消除法

oepncv 移动目标追踪, 背景消除法,MOG,KNN

输出结果:

oepncv 移动目标追踪, 背景消除法,MOG,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;
}

 

相关文章: