无需排序,高效检测图像角点 - Python OpenCV 代码示例
如果你不需要按照响应值降序排列角点,可以直接在for循环中遍历所有角点并标记它们的位置。以下是修改后的代码示例:
import cv2
import numpy as np
# 读取图像
image = cv2.imread('your_image.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 设定Harris角点检测的参数
block_size = 2
ksize = 3
k = 0.04
# 执行Harris角点检测
dst = cv2.cornerHarris(gray, block_size, ksize, k)
# 设置角点阈值
threshold = 0.01 * dst.max()
# 在图像上绘制圆圈标记角点
for i in range(dst.shape[0]):
for j in range(dst.shape[1]):
if dst[i, j] > threshold:
cv2.circle(image, (j, i), 5, (0, 0, 255), 2)
# 展示图像
cv2.imshow('Corners', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个修改后的代码中,我们设置了一个阈值,只有当角点的响应值大于阈值时,才会在图像上绘制圆圈标记。你可以调整阈值来控制标记的角点数量。同样,请记得将'your_image.jpg'替换为你要处理的图像路径。运行代码后,图像窗口将会显示带有标记的角点的图像。
原文地址: http://www.cveoy.top/t/topic/LT5 著作权归作者所有。请勿转载和采集!