opencv角点检测输出坐标
时间: 2023-10-02 13:10:17 浏览: 102
OPENCV人脸检测加角点检测并输出坐标
4星 · 用户满意度95%
OpenCV的角点检测函数可以输出检测到的角点的坐标。下面是使用OpenCV中的CornerHarris函数进行角点检测并输出角点坐标的示例代码:
```python
import cv2
import numpy as np
# 读入图像
img = cv2.imread('image.png')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行角点检测
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
# 标记角点
img[dst > 0.01 * dst.max()] = [0, 0, 255]
# 输出角点坐标
corners = np.where(dst > 0.01 * dst.max())
print(list(zip(corners[1], corners[0])))
```
在上面的代码中,`cv2.cornerHarris`函数的第一个参数是灰度图像,第二个参数是角点检测的窗口大小,第三个参数是Sobel算子的参数,第四个参数是常数k,根据经验值一般取0.04至0.06之间。函数的返回值`dst`是一个与输入图像大小相同的矩阵,其中每个像素的值表示该像素对应的角点响应强度,可以通过设置一个阈值来筛选出角点。最后,使用`np.where`函数找出响应强度大于阈值的像素位置,通过`list(zip(corners[1], corners[0]))`将其转换为坐标列表。
阅读全文