从opencv中的kcf跟踪清除ROI历史记录 [英] clear ROI history from kcf tracking in opencv

查看:755
本文介绍了从opencv中的kcf跟踪清除ROI历史记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using KCF tracking in OpenCV. everything is ok and i can track an object as well, but i have a problem: i set a ROI and algorithm work fine, sometimes i need change my ROI. there for tracker should reset and track my new ROI but it won't. in fact last ROI will remain in history and it effect on new location.

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

also this is my codes summary, i wrote important lines:

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);
}

当条件为真时,我想更改投资回报率.

i want change roi when Condition is true.

推荐答案

您需要致电:

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

问题已在此处解决: 重新初始化后,OpenCV 3 Tracker将无法工作

Problem was already solved here: OpenCV 3 Tracker won't work after reinitialization

这篇关于从opencv中的kcf跟踪清除ROI历史记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆