2013-10-09 39 views
0

我知道這是一個有據可查的問題,但我沒有設法在網上找到滿意的解決方案。開始。cvCalcOpticalFlowPyrLK不按預期方式工作

我正在使用cvCalcOpticalFlowPyrLK來跟蹤特徵點的運動。我用cvGoodFeaturesToTrack找到特徵點,並用cvFindCornerSubPix對其進行優化。我在我的第一幀(參考幀)中找到特徵點,並使用LK跟蹤這些點相對於參考幀的移動。我更新與當前幀特徵點協調與他們被發現的點。繼承人我觀察到:

1)沒有。 cvGoodFeaturesToTrack發現的特徵點很少。我試圖找到100分,但總是得不到10分。 2)沒有。在5-6幀之後的特徵點減少了50%,然後是50幀×5幀之後,這是當對象不在運動中時。從某種意義上來說,跟蹤是不完整的,但有些是正確的。

我在youtube或iphone應用程序上看過演示應用程序。沒有。幀與幀之間的特徵點不是我在應用程序中看到的。所以我懷疑我設置的參數可能是錯誤的。

這是我的調用的函數:

cvGoodFeaturesToTrack( 圖像, eigen_image, temp_image, corners_point, & corner_count, 0.01(質量級別), 3(分鐘距離), 0 , 10(塊大小), 0(使用harris), 0.04(k));

cvFindCornerSubPix( 圖像, cornersPoint, corner_count, cvSize(WINDOW_SIZE,WINDOW_SIZE) cvSize(-1,-1), cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS,20%,0.3));

cvCalcOpticalFlowPyrLK(圖像, 設置currentFrame, rpV-> pyramid_images0, rpV-> pyramid_images1, cornersPoint, cornersCurrent, corner_count, cvSize(WINDOW_SIZE,WINDOW_SIZE) 10(電平), features_found, feature_errors, cvTermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS,20,0.3), 0);

另一件事是我使用的是灰度相機(紅外相機)。雖然我不太重要。我想知道我是否在這裏失去了重要的東西。

任何形式的幫助,非常感謝。

感謝, 開

回答

0

有幾個問題:

  • 調用cvFindCornerSubpix沒有幫助,如果你正在跟蹤的功能並不像棋盤的角落。
  • 只有在視場運動大於窗框尺寸的情況下,對於合理的窗口尺寸,才能使用金字塔。
  • 很難說明爲什麼你沒有獲得足夠好的功能來跟蹤沒有看到你的圖像。也許這很模糊?
+0

感謝您指出。我見過很多使用cvFindCornerSubpix的人臉檢測和跟蹤示例,所以我認爲這可以提供幫助。我的圖像不太模糊。然而,照明光源不像天花板燈那樣統一。它在相機周圍的紅外LED。也許這就是爲什麼它不工作的原因,因爲LK強度一致性假設? – KelvinIPE

+0

cvFindCornerSubpix,上次我查看時,將這些特徵建模爲強度圖像的鞍點。這在自然圖像中幾乎不存在 - 但它非常適用於棋盤格。照明變化可能會解釋。你嘗試過一個簡單的標準化xcorr跟蹤器嗎? –

+0

我不確定xorr跟蹤器是否可以處理旋轉或縮放。如果它可以做到完美。我試圖看看SURF是否更適合我的需求。 – KelvinIPE