Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
窗口大小对openCV中harris角点检测器的结果有什么影响_Opencv_Computer Vision_Feature Detection_Corner Detection - Fatal编程技术网

窗口大小对openCV中harris角点检测器的结果有什么影响

窗口大小对openCV中harris角点检测器的结果有什么影响,opencv,computer-vision,feature-detection,corner-detection,Opencv,Computer Vision,Feature Detection,Corner Detection,我正在研究不同参数对使用openCV的Harris角点检测器错误率的影响。输入参数为窗口大小、sobel算子的核大小和k参数的值。我发现,当我增加窗口大小时,每个角落的响应数量似乎会增加。例如,如果每个包含角点的窗口都用点标记,那么当我使用7x7窗口而不是2x2窗口时,标识的角点周围的点密度似乎更高。更改窗口大小也会增加正确识别的角的数量 我的编码如下,这是我从示例中得到的 进口cv2 将numpy作为np导入 文件名='resized_image.jpg' img=cv2.imreadfil

我正在研究不同参数对使用openCV的Harris角点检测器错误率的影响。输入参数为窗口大小、sobel算子的核大小和k参数的值。我发现,当我增加窗口大小时,每个角落的响应数量似乎会增加。例如,如果每个包含角点的窗口都用点标记,那么当我使用7x7窗口而不是2x2窗口时,标识的角点周围的点密度似乎更高。更改窗口大小也会增加正确识别的角的数量

我的编码如下,这是我从示例中得到的

进口cv2 将numpy作为np导入 文件名='resized_image.jpg' img=cv2.imreadfilename 灰色=cv2.CVT颜色,cv2.COLOR\U BGR2GRAY 灰色=np.32灰色 dst=cv2.0,伽马射线,7,3,0.015 标记拐角时,结果被放大,这并不重要 dst=cv2。dst,无 阈值为最佳值,它可能因图像而异。 img[dst>0.05*dst.max]=[0,0255] cv2.imwrite'corners3.jpg',img cv2.imshow'dst',img 如果cv2.waitKey0&0xff==27:
cv2.destroyAllWindows你所说的每个角落的响应是什么意思?在真实拐角位置附近的探测器响应中,通常可以看到多个峰簇。这是因为对于自然图像,响应函数绝不是平滑的——毕竟它计算导数的乘积,从而放大原始图像中的任何随机振荡。哈里斯滤波器所做的只是增强非平滑函数峰值的区域,但峰值可以彼此接近,即使你对图像的直觉告诉你它们不应该如此

解决这个问题的一个明显的技术是计算平滑的导数,即Gx*i,而不是Ix,其中G是一个小的高斯核等,但这有一个副作用,即一些弱角点可能会被平滑掉

无论是否使用平滑导数,用于解决此问题并获得预期数量N个干净角点的简单算法是从响应中选择k*N个最强峰值,通过使用k降低检测器响应强度排序,例如,在5到10范围内,然后:

从列表中选择下一个峰值。 查找Harris探测器响应值Hx,y的位置x,y。 如果Hx,y>0,则

将其添加到输出的干净角落列表中

在x,y的小m×m邻域中将H的所有值设置为0

否则跳过这个高峰。 如果输出列表的大小小于N并且还有任何峰值,则转到1。 簇抑制邻域的宽度m应该表示关于实际角点之间的距离的先验信息。该方法显然假设簇的最佳角点是具有最强Harris滤波器响应的角点

顺便说一句,如果你对名字感兴趣或者在谷歌上搜索它们,这通常被称为非局部极大值抑制


BTW-2:有关查找H响应的所有局部最大值的详细信息,请参阅,然后根据响应值等进行排序。

这很奇怪。。。你能展示一下你代码的相关部分吗?