我正在研究使用openCV改变不同参数对哈里斯角点检测器的错误率的影响。输入参数是窗口大小,sobel运算符的内核大小和k参数的值。我发现,当我增加窗口大小时,每个角落的响应数量似乎有所增加。例如,如果每个包含一个角的窗口都用一个点标记,那么当我使用7x7窗口而不是2x2窗口时,在标识的角落周围出现密度较高的点。更改窗口大小似乎也会增加正确识别的角点数量。窗口大小对openCV中哈里斯角点检测器的结果有什么影响
我的编码如下,这是我从this例如有
import cv2
import numpy as np
filename = 'resized_image.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
dst = cv2.cornerHarris(gray,7,3,0.015)
#result is dilated for marking the corners, not important
dst = cv2.dilate(dst,None)
# Threshold for an optimal value, it may vary depending on the image.
img[dst>0.05*dst.max()]=[0,0,255]
cv2.imwrite('corners3.jpg', img)
cv2.imshow('dst',img)
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()
可能有人请解释对Harris角点检测的结果增加了窗口大小的影响。具体为什么每个角落的响应数量随着窗口大小的增加而增加。我的理解是,这个函数计算窗口梯度,并使用sobel运算符执行一些平滑处理,如果这对结果有影响的话。对不起,如果这是一个明显的问题,但我只是新的计算机视觉。
这是奇怪的...你能请出示你的代码的相关部分? – sansuiso