shi-tomasi角点检测代码
时间: 2023-11-16 14:06:50 浏览: 94
以下是使用OpenCV库实现Shi-Tomasi角点检测的示例代码:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Shi-Tomasi角点检测
corners = cv2.goodFeaturesToTrack(gray, 25, 0.01, 10)
# 将检测到的角点可视化
corners = np.int0(corners)
for corner in corners:
x, y = corner.ravel()
cv2.circle(img, (x, y), 3, (0, 255, 0), -1)
# 显示结果
cv2.imshow('Corner Detection', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,我们首先加载了一张图像,并将其转换为灰度图像。然后,使用OpenCV库中的`cv2.goodFeaturesToTrack()`函数进行Shi-Tomasi角点检测,该函数的参数包括:输入图像、需要检测的角点数目、角点的最小质量度、角点之间的最小距离等。最后,我们将检测到的角点可视化,并显示结果。
需要注意的是,`cv2.goodFeaturesToTrack()`函数返回的是一个Numpy数组,其中每个元素都是一个包含两个坐标值的数组,表示一个检测到的角点的位置。在将这些角点可视化时,我们需要使用`np.int0()`函数将坐标值转换为整数类型,才能作为绘制圆形的参数。
阅读全文