从 opencv 中的 kcf 跟踪中清除 ROI 历史记录

Posted

技术标签:

【中文标题】从 opencv 中的 kcf 跟踪中清除 ROI 历史记录【英文标题】:clear ROI history from kcf tracking in opencv 【发布时间】:2016-11-03 18:17:56 【问题描述】:

我在 OpenCV 中使用 KCF 跟踪。一切正常,我也可以跟踪一个对象,但我有一个问题: 我设置了投资回报率,算法工作正常,有时我需要改变我的投资回报率。那里的跟踪器应该重置并跟踪我的新投资回报率,但它不会。事实上,最后一个 ROI 将保留在历史中,并且会影响新的位置。

这也是我的代码总结,我写了重要的几行:

Rect2d roi;
Mat frame;
Ptr<Tracker> tracker = Tracker::create("KCF");
VideoCapture cap("C1_0001.mp4");
cap >> frame;
roi = selectROI("tracker", frame);

if (Condition = true)

roi = selectROI("tracker", frame);


tracker->init(frame, roi);
for (;; ) 

        cap >> frame;
        tracker->update(frame, roi);

我想在条件为真时更改投资回报率。

【问题讨论】:

【参考方案1】:

您需要致电:

tracker->clear();
tracker = cv::Tracker::create("KCF");
tracker->init(frame, roi);

问题已经在这里解决了: OpenCV 3 Tracker won't work after reinitialization

【讨论】:

以上是关于从 opencv 中的 kcf 跟踪中清除 ROI 历史记录的主要内容,如果未能解决你的问题,请参考以下文章

目标跟踪的深度学习方法与opencv下的KCF方法

在 OpenCV 中清除(不裁剪)图像的非 ROI 部分

opencv python中的运动跟踪

使用Python,OpenCV进行对象追踪

Opencv 对象跟踪和计数在视频帧中通过 ROI 的对象

如何使用 dlib 跟踪 ROI 内的对象?