python寻找轮廓的角点
时间: 2023-06-21 09:17:02 浏览: 151
Python实现图像的角点检测,并输出角点坐标点
要寻找轮廓的角点,可以使用OpenCV中的cornerHarris函数。这个函数可以检测图像中的角点。
具体实现代码如下:
```python
import cv2
import numpy as np
# 读取图片并转为灰度图
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 转为浮点型
gray = np.float32(gray)
# 计算Harris角点
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
# 反转颜色,将角点变为白色
dst = cv2.bitwise_not(dst)
dst_norm = cv2.normalize(dst, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U)
# 提取角点
threshold = 100
corners = np.where(dst_norm > threshold)
# 在原图中绘制角点
for i in range(len(corners[0])):
cv2.circle(img, (corners[1][i], corners[0][i]), 5, (0, 0, 255), 2)
cv2.imshow('corners', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cornerHarris函数的参数解释如下:
- gray:灰度图像
- 2:表示检测角点时要考虑周围2个像素点
- 3:表示Sobel算子的大小
- 0.04:表示角点检测的灵敏度参数,值越大,检测到的角点越少
可以根据需要调整这些参数来得到更好的结果。
阅读全文