基本思想:
(a) 平坦區域 (b)邊緣區域 (c)角點區域
算法的基本思想是:
(1)如果圖片在窗口附近變化平坦,窗口所有方向上的移動只會引起窗口內對應像素灰度值微小的變化,如圖a所示。
(2)如果窗口位於圖像邊緣上,那麼順着邊緣方向上的移動引起上述值微小的變化,垂直於邊緣方向上的移動將引起巨大的變化,如圖b所示。
(3)如果窗口位於圖像的角點上,則所有方向上的移動都將造成窗口內對應像素灰度值巨大的變化,如圖c所示。
Moravec算法:
moravec算法爲上述算法的一個裸奔實現:
1、採用窗口模板
2、使用若干個方向(如上下左右4個方向)
3、使用各個方向的變化最小值作爲角點響應值
用公式表示即:
其中w表示所使用的二值化窗口,(x,y)包含[(1,0),(1,1),(0,1),(-1,1)]四個方向,Moravec算法通過該點在4個方向上的min Ex,y 是否大於某一閾值來判斷該點是否爲圖像的角點。
Harris角點檢測算法:
由於Moravec算法有如下明顯缺陷:
(1)Moravec角點檢測算法只考慮了每個45度角方向,如圖所示,不屬於這幾個方向的邊緣會被檢測爲角點。
(a)原圖使用Moravec角點檢測 (b)旋轉之後使用Moravec角點檢測
(2)Moravec角點檢測算法採用二值化窗口,對噪聲較爲敏感。
(3)Moravec角點檢測算法只關注這幾個方向中E的最小值。
harris算法進行了如下改進:
(1)Moravec算法只計算了間隔25度的幾個方向,Harris算法使用Taylor展式近似計算任意方向:
其中X和Y分別爲x和y方向上的梯度:
則對於任意方向的微小移動(x,y):
其中:
w爲卷積窗口。
(2)Moravec算法採用二值窗口,Harris算法採用更加平滑的窗口,如高斯窗口:
(3)Moravec算法通過各個方向Ex,y的最小值檢測角點,Harris使用一種新的判斷方法:
使用矩陣的形式表示Ex,y爲:
其中
M的兩個特徵值α,β和局部自相關函數的主曲率成正比,同Moravec算法一樣,分如下三種情況討論α,β和圖像特徵的關係:
(1)如果兩個曲率都較小,即局部自相關函數整體較平坦,則所有方向上的移動將引起E的微小變化。
(2)如果其中一個曲率較大而另一個較小,即局部自相關函數呈山脊狀。沿着山脊的移動引起E微小的變化,此時窗口處於圖像邊緣處。
(3)如果兩個曲率都較大,則局部自相關函數呈山頂形狀:所有方向的移動引起E劇烈的變化,此時窗口處於圖像的角點處。
基於上述考慮,Harris定義角點響應函數:
其中:
Nobel角點檢測算法:
由於Harris算法中參數k需要根據經驗提前設定,Nobel於1988年提出利用如下公式計算角點的響應值:
採用上述公式計算角點的CRF值,從而避免的參數k對角點選取的影響,在實際應用中,通常選用這個改進的Harris角點檢測算法進行檢測:當cim值大於預定的閾值,則該點爲角點候選點,通過非極大值抑制挑選出最終的角點。
Shi-Tomasi角點檢測算法:
J.Shi和J.Tomasi於2000年採用與Harris不同的角點響應函數。在Harris算法中角點響應函數定義爲:
其中和分別爲M矩陣的兩個特徵值。而Shi-Tomasi算法採用的角點響應函數爲:
即兩個特徵值中的最小值即: