程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

十、opencv-python圖像處理頂級操作(2)——角點檢測

編輯:Python

Harris和Shi-Tomas算法

學習目標

理解Harris和Shi-Tomasi算法的原理

能夠利用Harris和Shi-Tomasi進行角點檢測

一、Harris角點檢測

1、原理

Harris角點檢測的思想是通過圖像的局部小窗口觀察圖像,角點的特征是窗口沿任意方向移動都會導致灰度發生明顯變化,如下圖所示:

將上述思想轉換為數學的形式,即將局部窗口向各個方向移動(u,v)並計算所有灰度差異的總和,表達式如下:

其中I(x, y)是局部窗口的圖像灰度,I(x+u, y+v)是平移後的圖像灰度,w(x, y)是窗口函數,可以是矩形窗口,也可以是對每個像素賦予不同權重的高斯窗口,如下圖所示:

角點檢測中使E(u, v)的值最大,利用一階泰勒展開有:

其中Ix和Iy是沿x和y方向的導數,可用sobel算子計算。
推導如下:

M矩陣決定了E(u, v)的取值,下面我們利用M來求角點,M是Ix和Iy的二次項函數,可以表示成橢圓的形狀,橢圓的長短半軸由M的特征值 λ 1 \lambda_1 λ1​和 λ 2 \lambda_2 λ2​決定,方向由特征矢量決定,如下圖所示:

橢圓函數特征值與圖像中的角點、直線(邊緣)和平面之間的關系如下圖所示:

二、Shi-Tomas角點檢測

總結

Harris算法

思想:通過圖像的局部小窗口觀察圖像,角點的特征是窗口沿任意方向移動都會導致圖像灰度明顯變化。
API:

cv2.cornerHarris()

Shi-Tomasi算法

對Harris算法的改進,能更好的檢測角點。
API:

cv2.goodFeatureToTrack()

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved