如果你不需要按照响应值降序排列角点,可以直接在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'替换为你要处理的图像路径。运行代码后,图像窗口将会显示带有标记的角点的图像。

无需排序,高效检测图像角点 - Python OpenCV 代码示例

原文地址: http://www.cveoy.top/t/topic/LT5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录