通常意義上來說,角點就是極值點,即在某方面屬性特別突出的點,是在某些屬性上強度最大或者最小的孤立點、線段的終點。對于圖像而言,其是物體輪廓線的連接點。
算法的核心是利用局部窗口在圖像上進行移動,判斷灰度是否發(fā)生較大的變化。如果窗口內(nèi)的灰度值(在梯度圖上)都有較大的變化,那么這個窗口所在區(qū)域就存在角點。
這樣就可以將 Harris 角點檢測算法分為以下三步:
1,當窗口(局部區(qū)域)同時向 x (水平)和 y(垂直) 兩個方向移動時,計算窗口內(nèi)部的像素值變化量 E(x,y);
2,對于每個窗口,都計算其對應的一個角點響應函數(shù) R;
3,然后對該函數(shù)進行閾值處理,如果 R>threshold,表示該窗口對應一個角點特征。
2
建立數(shù)學模型
第一步是通過建立數(shù)學模型,確定哪些窗口會引起較大的灰度值變化。讓一個窗口的中心位于灰度圖像的一個位置(x,y),這個位置的像素灰度值為I(x,y),如果這個窗口分別向 x和 y 方向移動一個小的位移u和v,到一個新的位置 (x+u,y+v),這個位置的像素灰度值就是I(x+u,y+v)。|I(x+u,y+v)?I(x,y)|就是窗口移動引起的灰度值的變化值。
設w(x,y)為位置(x,y)處的窗口函數(shù),表示窗口內(nèi)各像素的權(quán)重,最簡單的就是把窗口內(nèi)所有像素的權(quán)重都設為1,即一個均值濾波核。當然,也可以把 w(x,y)設定為以窗口中心為原點的高斯分布,即一個高斯核。
如果窗口中心點像素是角點,那么窗口移動前后,中心點的灰度值變化非常強烈,所以該點權(quán)重系數(shù)應該設大一點,表示該點對灰度變化的貢獻較大;而離窗口中心(角點)較遠的點,這些點的灰度變化比較小,于是將權(quán)重系數(shù)設小一點,表示該點對灰度變化的貢獻較小。
則窗口在各個方向上移動(u,v)所造成的像素灰度值的變化量公式如下:
若窗口內(nèi)是一個角點,則E(u,v)的計算結(jié)果將會很大。為了提高計算效率,對上述公式進行簡化,利用泰勒級數(shù)展開來得到這個公式的近似形式。
對于二維的泰勒展開式公式為:
T(x,y)=f(u,v)+(x?u)fx(u,v)+(y?v)fy(u,v)+....
則I(x+u,y+v) 為:
I(x+u,y+v)=I(x,y)+uIx+vIy
其中Ix和Iy是I的微分(偏導),在圖像中就是求x 和 y 方向的梯度圖:
Ix=?I(x,y)/?x
Iy=?I(x,y)/?y
將I(x+u,y+v)=I(x,y)+uIx+vIy代入E(u,v)可得:
提出 u 和 v ,得到最終的近似形式:
其中矩陣M為:
最后是把實對稱矩陣對角化處理后的結(jié)果,可以把R看成旋轉(zhuǎn)因子,其不影響兩個正交方向的變化分量。經(jīng)對角化處理后,將兩個正交方向的變化分量提取出來,就是 λ1 和 λ2(特征值)。
這里利用了線性代數(shù)中的實對稱矩陣對角化的相關(guān)知識,有興趣的同學可以進一步查閱相關(guān)資料。
3
角點響應函數(shù)R
現(xiàn)在我們已經(jīng)得到E(u,v)的最終形式,別忘了我們的目的是要找到會引起較大的灰度值變化的那些窗口。
灰度值變化的大小則取決于矩陣M,M為梯度的協(xié)方差矩陣。在實際應用中為了能夠應用更好的編程,所以定義了角點響應函數(shù)R,通過判定R大小來判斷像素是否為角點。
計算每個窗口對應的得分(角點響應函數(shù)R定義):
其中 det(M)=λ1λ2是矩陣的行列式,trace(M)=λ1+λ2是矩陣的跡。λ1和 λ2是矩陣M的特征值,k是一個經(jīng)驗常數(shù),在范圍 (0.04, 0.06) 之間。R的值取決于M的特征值,對于角點∣R∣很大,平坦的區(qū)域∣R∣很小,邊緣的R為負值。
4
角點判定
根據(jù) R 的值,將這個窗口所在的區(qū)域劃分為平面、邊緣或角點。為了得到最優(yōu)的角點,我們還可以使用非極大值抑制。
注意:Harris 檢測器具有旋轉(zhuǎn)不變性,但不具有尺度不變性,也就是說尺度變化可能會導致角點變?yōu)檫吘?。想要尺度不變特性的話,可以關(guān)注SIFT特征。
因為特征值 λ1 和 λ2 決定了 R 的值,所以我們可以用特征值來決定一個窗口是平面、邊緣還是角點:
平面:該窗口在平坦區(qū)域上滑動,窗口內(nèi)的灰度值基本不會發(fā)生變化,所以∣R∣ 值非常小,在水平和豎直方向的變化量均較小,即 Ix和 Iy都較小,那么 λ1 和 λ2 都較?。?/p>
邊緣:∣R∣值為負數(shù),僅在水平或豎直方向有較大的變化量,即 Ix和Iy只有一個較大,也就是 λ1>>λ2 或 λ2>>λ1;
角點:[公式] 值很大,在水平、豎直兩個方向上變化均較大的點,即 Ix和 Iy都較大,也就是 λ1 和 λ2 都很大。
如下圖所示:
Harris 角點檢測的結(jié)果是帶有這些分數(shù) R 的灰度圖像,設定一個閾值,分數(shù)大于這個閾值的像素就對應角點。
編輯:黃飛
-
圖像處理
+關(guān)注
關(guān)注
27文章
1302瀏覽量
56902 -
閾值
+關(guān)注
關(guān)注
0文章
123瀏覽量
18553 -
Harris
+關(guān)注
關(guān)注
0文章
9瀏覽量
8233
原文標題:圖像處理-harris角點檢測
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
人臉檢測算法及新的快速算法
基于matlab的圖像處理--飛機檢測
【DragonBoard 410c試用體驗】 之OpenCV中之圖像角點檢測實現(xiàn)
基于圖像距離差的織物疵點檢測算法
基于小波變換多尺度Harris角點檢測算法
免費下載!一款基于Zynq的Harris角點檢測算法實現(xiàn)Demo
Harris角點檢測在列車滑動監(jiān)測系統(tǒng)中的應用_潘崢嶸
OpenCV3.1教程之Harris角點檢測的詳細課件免費下載
![OpenCV3.1教程之<b class='flag-5'>Harris</b><b class='flag-5'>角</b><b class='flag-5'>點檢測</b>的詳細課件免費下載](https://file.elecfans.com/web1/M00/B2/83/o4YBAF4S4J2AFoOVAAE0y3szodk917.png)
基于高斯金字塔圖像的改進Harris特征點檢測算法
![基于高斯金字塔<b class='flag-5'>圖像</b>的改進<b class='flag-5'>Harris</b>特征<b class='flag-5'>點檢測算法</b>](https://file.elecfans.com/web1/M00/EE/20/pIYBAGCTskOAUaLsAALBdf_uS-I085.png)
評論