очистить историю ROI от отслеживания kcf в opencv

Я использую отслеживание KCF в OpenCV. все в порядке, и я тоже могу отслеживать объект, но у меня проблема: я установил ROI, и алгоритм работает нормально, иногда мне нужно изменить ROI. там для трекера должен сбросить и отслеживать мой новый ROI, но это не так. на самом деле последний 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, когда условие истинно.


person Alireza Kenarang    schedule 03.11.2016    source источник


Ответы (1)


вам нужно позвонить:

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

Здесь проблема уже решена: Отслеживание OpenCV 3 не будет работать после повторной инициализации

person 00zetti    schedule 07.12.2016