OpenCV有个函数cv2.goodFeaturesToTrack()。它会用Shi-Tomasi方法(或者Harris角点检测,你可以指定)找到N个最强的角。
这个函数更适合跟踪。
import numpy as np
import cv2
from matplotlib import pyplot as plt
%matplotlib inline
img = cv2.imread('touxiang.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray,25,0.01,10)
corners = np.int0(corners)
for i in corners:
x,y = i.ravel()#将多维数组降位一维
cv2.circle(img,(x,y),3,255,-1)
plt.imshow(img),plt.show()
(, None)