角點 檢測

點檢測的一份非常詳細的教程:

http://www.cim.mcgill.ca/~dparks/CornerDetector/index.htm

在上述教程中涉及到了Harris角點檢測的推導以及各種角點檢測方法的比較,非常值得一看。這裏只是簡單的整理一下,用白話說明一下Harris角點檢測算法的步驟:

1. 計算圖像的方向導數,分別保存爲兩個數組Ix以及Iy,這裏可以使用任何方法,比較正統的是使用Gaussian函數,因爲在Harris角點檢測的推導過程中默認是採用了Gaussian函數作爲其計算圖像偏導數的方法。當然使用簡單的Prewitt或者Sobel算子也沒有關係。

2. 爲每一個點計算局部自相關矩陣 u(x,y) = [Ix(x,y)^2*W Iy(x,y)Ix(x,y)*W;Ix(x,y)Iy(x,y)*W Iy(x,y)^2*W];這裏*W代表以x,y爲中心與高斯模板W做卷積,而這個模板的大小則需要你自己指定。

3. 如果這個u的兩個特徵值都很小,則說明這個區域是個平坦區域。如果u的某個特徵值一個大一個小,則是線,如果兩個都很大,那麼就說明這是個角點。Harris提供了另一個公式來獲取這個點是否是角點的一個評價:corness = det(u) - k*trace(u)^2;

這個corness就代表了角點值,其中k是你自己取的一個固定的變量,典型的爲[0.04,0.06]之間。當然在求取了每個點的corness以後,最好再做一個極大值抑制,這樣的效果比直接設置一個閥值要好。

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/prleader/archive/2009/02/23/3930571.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章