更新時(shí)間:2021-06-04 來源:黑馬程序員 瀏覽量:
Shi-Tomasi算法是對(duì)Harris角點(diǎn)檢測(cè)算法的改進(jìn),一般會(huì)比Harris算法得到更好的角點(diǎn)。Harris 算法的角點(diǎn)響應(yīng)函數(shù)是將矩陣 M 的行列式值與 M 的跡相減,利用差值判斷是否為角點(diǎn)。后來Shi 和Tomasi 提出改進(jìn)的方法是,若矩陣M的兩個(gè)特征值中較小的一個(gè)大于閾值,則認(rèn)為他是角點(diǎn),即: 如下圖所示:

從這幅圖中,可以看出來只有當(dāng) λ1 和 λ 2 都大于最小值時(shí),才被認(rèn)為是角點(diǎn)。
在OpenCV中實(shí)現(xiàn)Shi-Tomasi角點(diǎn)檢測(cè)使用API:
corners = cv2.goodFeaturesToTrack ( image, maxcorners, qualityLevel, minDistance )
參數(shù):
返回:
示例:
import numpy as np import cv2 as cvimport matplotlib.pyplot as plt# 1 讀取圖像img = cv.imread('./image/tv.jpg') gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)# 2 角點(diǎn)檢測(cè)corners = cv.goodFeaturesToTrack(gray,1000,0.01,10) # 3 繪制角點(diǎn)for i in corners: x,y = i.ravel() cv.circle(img,(x,y),2,(0,0,255),-1)# 4 圖像展示plt.figure(figsize=(10,8),dpi=100)plt.imshow(img[:,:,::-1]),plt.title('shi-tomasi角點(diǎn)檢測(cè)')plt.xticks([]), plt.yticks([])plt.show()結(jié)果如下:

總結(jié)
Harris算法
思想:通過圖像的局部的小窗口觀察圖像,角點(diǎn)的特征是窗口沿任意方向移動(dòng)都會(huì)導(dǎo)致圖像灰度的明顯變化。
API: cv.cornerHarris()
Shi-Tomasi算法
對(duì)Harris算法的改進(jìn),能夠更好地檢測(cè)角點(diǎn)
API: cv2.goodFeatureToTrack()
猜你喜歡:
集成學(xué)習(xí)算法是什么?如何理解集成學(xué)習(xí)?
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營】深圳跨境電商運(yùn)營畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19