多目标追踪

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15642411/article/details/84065004

代码如下:

#include <iostream>
#include<opencv2/opencv.hpp>
#include<string>
#include<boost/format.hpp>
#include<opencv2/tracking.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/core.hpp>
using namespace std;
using namespace cv;
int main(int argc,char **argv)
{
    Mat frame;
    if(argc<2){
        throw runtime_error("请输入待追踪的视屏");
    }
    VideoCapture cap(argv[1]);
    cap>>frame;
    //写视屏
    int frame_width = cap.get(CV_CAP_PROP_FRAME_WIDTH);
    int frame_height = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
    VideoWriter video("tracker.avi",CV_FOURCC('M','J','P','G'),10, Size(frame_width,frame_height));
    //
    vector<Rect2d> rois;
    for(auto i=0;i<2;++i)
    {
        rois.push_back(selectROI(frame, false));

    }
    //selectROIs始终有问题,那么就采用循环选择两次的roi
    if(rois.size()<1){
        return EXIT_FAILURE;
    }
    MultiTracker trackers;
//    vector<Rect2d> obj;
    vector<Ptr<Tracker>> algorithm;
//    algorithm.push_back(TrackerKCF::create());
//    algorithm.push_back(TrackerGOTURN::create());//goturn 测试始终不好
    for(int i=0;i<2;++i)
    {
        algorithm.push_back(TrackerKCF::create());
    }
//    for (auto i = 0; i < rois.size(); i++)
//    {
//        obj.push_back(rois[i]);
//    }
    trackers.add(algorithm,frame,rois);//add相当于单目标中init函数
    while (cap.read(frame))
    {
        bool ok = trackers.update(frame);
        if (ok)
        {
            for (auto j = 0; j < trackers.getObjects().size(); j++)
            {
                rectangle(frame, trackers.getObjects()[j], Scalar(0, 0, 255), 2, 1);
            }
        }
        else
        {
            putText(frame, "Tracking failure detected", Point(100,80), FONT_HERSHEY_SIMPLEX, 0.75, Scalar(0,0,255),2);
        }
        video.write(frame);
        imshow("tracker",frame);
        int k=waitKey(40);
        if(k==27){
            break;
        }
    }
    video.release();
    cap.release();
    destroyAllWindows();
    return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_15642411/article/details/84065004