cv2.cornerHarris返回像素坐标
时间: 2023-10-02 19:06:58 浏览: 215
VC实现HARRIS和CORNER算法
cv2.cornerHarris函数返回的是一个浮点数数组,表示每个像素的角点响应值。它并不直接返回像素坐标。要获取角点的像素坐标,你需要根据阈值对角点响应值进行筛选,并通过numpy库的函数找到对应的像素坐标。你可以使用np.where函数来实现这一点。
首先,你需要设定一个阈值来筛选角点。然后,使用np.where函数来找到角点响应值大于阈值的像素坐标。
以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', 0)
# 设定角点检测的参数
dst = cv2.cornerHarris(img, 2, 3, 0.04)
# 设定阈值,筛选角点
threshold = 0.01 * dst.max()
corner_coordinates = np.where(dst > threshold)
# 打印角点的像素坐标
for i in range(len(corner_coordinates[0])):
x = corner_coordinates[1][i]
y = corner_coordinates[0][i]
print("Corner coordinate: ({}, {})".format(x, y))
```
请注意,这只是一个示例代码,你可能需要根据你的具体需求进行适当的修改。
阅读全文