本篇博客主要介绍cv2模块中的Tomasi角点检测。
cv2.goodFeaturesToTrack(),通常情况下输入的图像应该是灰度图像,然后确定需要检测到的角点的数目,再设置角点的质量水平为 0 到 1 之间。最后再设置两个角点之间的最短欧氏距离。
示例代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
filename = '../data/blox.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, maxCorners=25, qualityLevel=0.01, minDistance=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()
测试图片:
测试结果: