私はKCFトラッキングアルゴリズムを使用していますが、私の問題はターゲットウィンドウが終了してもトラッカーがリセットされず、理想的な状態のトラッカーは、ターゲットが失われたときに矩形を削除する必要があります。ターゲットを失ったときにKCFトラッカーのROIをリセットまたは更新する方法
これらは私のコードです:
int main(int argc, char** argv) {
Rect2d roi;
Mat frame;
// create a tracker object
Ptr<Tracker> tracker = Tracker::create("KCF");
VideoCapture cap("C2_0002.mp4");
cap >> frame;
resize(frame, frame, Size(frame.cols/2, frame.rows/2));
roi = selectROI("tracker", frame);
//quit if ROI was not selected
if (roi.width == 0 || roi.height == 0)
return 0;
// initialize the tracker
tracker->init(frame, roi);
// perform the tracking process
printf("Start the tracking process, press ESC to quit.\n");
for (;;) {
// get frame from the video
cap >> frame;
resize(frame, frame, Size(frame.cols/2, frame.rows/2));
// stop the program if no more images
if (frame.rows == 0 || frame.cols == 0)
break;
// update the tracking result
tracker->update(frame, roi);
rectangle(frame, roi, Scalar(255, 0, 0), 2, 1);
imshow("tracker", frame);
if (waitKey(1) == 27)break;
}
}
また、あなたは私のシミュレーションの短いビデオを見て、問題を確認できます。 http://www.0up.ir/do.php?downf=4_e2aa9.mp4
、多分再アップロード:偽のトレーニングサンプルが
fyi->オリジナルの紙)間違った行動につながるのだろうか? –
@MichalGallovic - 申し訳ありませんが、私はダウンロードリンクの問題を解決します。あなたは今すぐにそれをダウンロードすることができます –
[ここ](http://stackoverflow.com/questions/31432815/opencv-3-tracker-wont-work-after-reinitialization)と[ここで](http: /stackoverflow.com/questions/40408616/clear-roi-history-from-kcf-tracking-in-opencv) –