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

时间:2016-11-03 18:17:56

标签: opencv roi tracker

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

当条件为真时,我想要改变roi。

1 个答案:

答案 0 :(得分:2)

你需要打电话:

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

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