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

Shi-Tomasi角點檢測(python實現)

編輯:Python

文章目錄

    • 1.Harris特征檢測
    • 2.Shi-Tomasi角點檢測
    • 3.Shi-Tomasi角點檢測函數講解
    • 4.代碼實戰

1.Harris特征檢測

https://blog.csdn.net/Keep_Trying_Go/article/details/125384144


2.Shi-Tomasi角點檢測

Shi-Tomasi是對Harris角點檢測的改進;
由於Harris角點檢測算法的穩定性和K系數有關,而K是一個經驗值,所以不好設定其K的最佳值。


3.Shi-Tomasi角點檢測函數講解

goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, corners=None, mask=None, blockSize=None, useHarrisDetector=None, k=None):
Image:輸入的原始圖像
maxCorners:角點的最大數,值為0表示無限制
qualityLevel:角點的質量;小於的1.0的正數,一般在0.01-0.1之間;表示可接受角點的最低質量水平。該系數乘以最好的角點分數(也就是上面較小的那個特征值),作為可接受的最小分數;例如,如果最好的角點分數值為1500且質量系數為0.01,那麼所有質量分數小於15的角都將被忽略
minDistance:角之間最小歐式距離,忽略小於此距離的點
Corners:輸出檢測角點的一個向量值
Mask:感興趣的區域
blockSize:檢測窗口的大小
userHarrisDetector:是否使用Harris算法,默認值為false,不使用Harris算法
K:默認值為0.04


4.代碼實戰

import os
import cv2
import numpy as np
#讀取圖片
img=cv2.imread('images/HaLiSi.jpg')
#縮放圖片
img=cv2.resize(src=img,dsize=(450,450))
#轉灰度圖
gray=cv2.cvtColor(src=img,code=cv2.COLOR_RGB2GRAY)
tomasiCorners=cv2.goodFeaturesToTrack(image=gray,maxCorners=1000,qualityLevel=0.01,minDistance=10)
#轉換為整形
tomasiCorners=np.int0(tomasiCorners)
#遍歷所有的角點
for corner in tomasiCorners:
#獲取角點的坐標
x,y=corner.ravel()
cv2.circle(img=img,center=(x,y),radius=3,color=(0,255,0),thickness=-1)
#顯示圖像
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == '__main__':
print('Pycharm')


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