2012-07-02 75 views
5

我想寫一個SIFT的實現,就像一個練習一樣。但是,我遇到了一些我還沒有弄清楚的問題。據我所知,我得到的是與SIFT相反的東西:它找到了無趣的,平坦的圖像區域。我正在使用VXL。爲什麼我的SIFT實現只能找到平坦區域?

反正是我SIFT的早期階段的理解如下:

  1. 構建高斯金字塔

  2. 使用這個金字塔,得到差的 - 高斯金字塔

  3. 找到所有局部極值以獲得潛在關鍵點

  4. 沒關係,因爲我沒有得到這個遠。

我有我的代碼pastebin,如果有人願意幫忙,我會永遠感激。到目前爲止,this是我的算法吐出的,每個檢測到的「關鍵點」的位置都有一個洋紅色像素。

最後,標準免責聲明,我道歉,如果我做錯了什麼或違反了一些行爲規則。

+0

什麼是TOL?它看起來像你在418,419行的測試可能是不正確的。 – 2012-07-27 23:38:28

+0

你的pastebin無效了。但是您可能需要在查找當地極值之前取得DoG的絕對值!祝你好運 – bendervader

回答

0

對於任何人誰都有這個問題:我相信那是因爲你得到了模糊常數錯誤。我也犯了錯。

BLUR_i+1_oct(j) = BLUR_i_oct(j)*BLUR_STEP_CONSTANT; 
BLUR_0_oct(j+1) = 2*BLUR_0_oct(j); 

例如西格瑪= 1.5,模糊的應該是:

1 -> 1.5 -> 1.5^2 -> 1.5^3 -> 1.5^4 
2 -> 2*1.5 -> ... 
相關問題