17#include "samples_utility.hpp"
22int main(
int argc,
char** argv ){
26 " 用法:example_tracking_multitracker <video_name> [algorithm]\n"
28 " example_tracking_multitracker Bolt/img/%04d.jpg\n"
29 " example_tracking_multitracker faceocc2.webm MEDIANFLOW\n"
35 std::string trackingAlg =
"KCF";
39 trackingAlg = argv[2];
48 vector<Rect2d> objects;
52 std::string video = argv[1];
61 selectROIs(
"tracker",frame,ROIs);
70 std::vector<Ptr<legacy::Tracker> > algorithms;
71 for (
size_t i = 0; i < ROIs.size(); i++)
73 algorithms.push_back(createTrackerByName_legacy(trackingAlg));
74 objects.push_back(ROIs[i]);
77 trackers.
add(algorithms,frame,objects);
81 printf(
"开始跟踪流程,按 ESC 键退出。\n");
87 if(frame.rows==0 || frame.cols==0)
97 for(
unsigned i=0;i<trackers.
getObjects().size();i++)
102 imshow(
"tracker",frame);
105 if(waitKey(1)==27)
break;
用于从视频文件、图像序列或摄像机进行视频捕获的类。
定义 videoio.hpp:731
此类用于使用指定的跟踪器算法跟踪多个对象。
定义 tracking_legacy.hpp:352
const std::vector< Rect2d > & getObjects() const
返回对已跟踪对象的存储器的引用,每个对象对应于一个跟踪器算法...
bool add(Ptr< cv::legacy::Tracker > newTracker, InputArray image, const Rect2d &boundingBox)
添加要跟踪的新对象。
bool update(InputArray image)
更新当前跟踪状态。结果将保存在内部存储中。
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3
与磁盘上的文件关联的文件存储的“黑盒”表示。
定义 core.hpp:102