2016-11-05 15 views
4

私は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

+0

、多分再アップロード:偽のトレーニングサンプルが

fyi->オリジナルの紙)間違った行動につながるのだろうか? –

+0

@MichalGallovic - 申し訳ありませんが、私はダウンロードリンクの問題を解決します。あなたは今すぐにそれをダウンロードすることができます –

+0

[ここ](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) –

答えて

0

をあなたはもう少しそれを指定することができますか?
トラッカー

の更新がない場合a)は、あなたが
B全体トラッカーを削除する)あなたはちょうど私がトラッカーは、オブジェクトを返す場合は、再度動作するかどうかわからない長方形を印刷しません(同じ位置にあるか、古い出口位置の隣に別の位置に戻ります)、私は表示するための最も簡単な解決策があると思う:

は手順がtracker->update(frame, roi)戻りfalseたカウントした場合に0に設定する変数を作成します。 tracker->update(frame, roi)trueを返します。特定の数(しきい値)rectangle(frame, roi, Scalar(255, 0, 0), 2, 1)を呼び出すべきではありませんし、トラッカーを削除する/ループを中断することができます(私は前に言ったように、それは再び動作するかどうかわかりません、さらにトラッカーはアクティブな学習を使用します - 私はあなたのビデオを読み込むことができませんでしたhttp://www.robots.ox.ac.uk/~joao/publications/henriques_eccv2012.pdf

関連する問題