python cv2.cornerHarris
时间: 2023-12-12 15:05:03 浏览: 32
`cv2.cornerHarris()`是OpenCV库中用于角点检测的函数之一。它基于Harris角点检测算法,用于识别图像中的角点。
下面是一个使用`cv2.cornerHarris()`函数进行角点检测的示例:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg', 0) # 替换为你的图像路径
# 转换为float32类型
image = np.float32(image)
# 执行角点检测
dst = cv2.cornerHarris(image, blockSize=2, ksize=3, k=0.04)
# 标记角点
dst = cv2.dilate(dst, None)
image[dst > 0.01 * dst.max()] = 255
# 显示结果
cv2.imshow('Corner Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述示例中,我们首先使用`cv2.imread()`函数读取一张图像。然后,我们将图像转换为float32类型。接下来,我们使用`cv2.cornerHarris()`函数执行角点检测,其中`blockSize`参数指定邻域大小,`ksize`参数指定Sobel导数的孔径大小,`k`参数为角点检测方程中的自由参数。
然后,我们使用`cv2.dilate()`函数对角点结果进行膨胀操作,并将大于阈值的角点位置标记为白色。最后,我们使用`cv2.imshow()`和`cv2.waitKey()`函数显示图像中的角点。
请注意,此示例假设输入图像是灰度图像。如果你的图像是彩色图像,可以使用`cv2.cvtColor()`函数将其转换为灰度图像。