Harris角點檢測原理
1. 首先,我們不禁要問什麼是harris角點?
對於角點,到目前為止還沒有明確的數學定義。但是你可以認為角點就是極值點,即在某方面屬性特別突出的點。一般的角點檢測都是對有具體定義的、或者是能夠具體檢測出來的興趣點的檢測。這意味著興趣點可以是角點,是在某些屬性上強度最大或者最小的孤立點、線段的終點,或者是曲線上局部曲率最大的點。
通俗的來說,在一副影象中,我們可以認為角點是物體輪廓線的連線點(見圖1),當拍攝視角變化的時候,這些特徵點仍能很好地保持穩定的屬性。
圖1 corner
角點在保留影象圖形重要特徵的同時,可以有效地減少資訊的資料量,使其資訊的含量很高,有效地提高了計算的速度,有利於影象的可靠匹配,使得實時處理成為可能。它的各種應用,這裡我就不再贅述了。
2. 如何檢測出harris角點?
圖2 角點檢測的基本思想
角點檢測最原始的想法就是取某個畫素的一個鄰域視窗,當這個視窗在各個方向上進行小範圍移動時,觀察視窗內平均的畫素灰度值的變化(即,E(u,v),Window-averaged change of intensity)。從上圖可知,我們可以將一幅影象大致分為三個區域(‘flat’,‘edge’,‘corner’),這三個區域變化是不一樣的。
其中,u,v是視窗在水平,豎直方向的偏移,
這裡可以先簡單複習一下泰勒級數展開的知識,因為馬上就用到啦,
這是一維的情況,對於多元函式,也有類似的泰勒公式。
對I(x+u,y+v)進行二維泰勒級數展開,我們取一階近似,有
圖中藍線圈出的部分我們稱之為結構張量(structure tensor),用M表示。
講到這裡,先明確一點,我們的目的是什麼?我們的目的是尋找這樣的畫素點,它使得我們的u,v無論怎樣取值,E(u,v)都是變化比較大的,這個畫素點就是我們要找的角點。不難觀察,上式近似處理後的E(u,v)是一個二次型,而由下述定理可知,
令E(u,v)=常數,我們可用一個橢圓來描繪這一函式。
橢圓的長短軸是與結構張量M的兩個特徵值相對應的量。通過判斷的情況我們就可以區分出‘flat’,‘edge’,‘corner’這三種區域,因為最直觀的印象:
corner:在水平、豎直兩個方向上變化均較大的點,即Ix、Iy都較大; edge :僅在水平、或者僅在豎直方向有較大的點,即Ix和Iy只有其一較大 ; flat : 在水平、豎直方向的變化量均較小的點,即Ix、Iy都較小;
而結構張量M是由Ix,Iy構成,它的特徵值正好可以反映Ix,Iy的情況,下面我以一種更容易理解的方式來講述橢圓的物理意義。
這樣是不是更清楚了呢^_^......,因此我們可以得出結論:
當然,大牛們並沒有止步於此,這樣通過判斷兩個變數的值來判斷角點畢竟不是很方便。於是他們想出了一種更好的方法,對,就是定義角點響應函式R(corner response function),
針對三種區域,R的取值如何呢?
至此,我們就可以通過判斷R的值來判斷某個點是不是角點了。 --------------------- 作者:零錢幣 來源:CSDN 原文:https://blog.csdn.net/linqianbi/article/details/78930239?utm_source=copy 版權宣告:本文為博主原創文章,轉載請附上博文連結!