以上是使用Harris角点检测算法计算图像中的角的表示。我已经实施了第5步,但是,在步骤6中,我无法决定如何设置计算R = det(H) - k(trace(H))^2
时获得的值的阈值。
这个截图取自罗伯特·柯林斯的幻灯片http://www.cse.psu.edu/~rcollins/CSE486/lecture06.pdf,在那里他提到了角落
并设置-1000 for edges and 10000 for corners
的阈值。介于两者之间的值没有任何意义。
我的问题是他主观关于他的实验和他对样本图像的选择,对于特定的图像,-10000 and 10000
的值是有效的。在现实生活中,无法知道预期的图像类型,如何选择阈值。
P.S:我已经尝试过使用Matlab的rice.png
,但阈值已经过了。
编辑:我看过这个关于哈里斯角的问题Implementing a Harris corner detector 其中说“只收集所有像素,其值高于周围5x5邻域中的所有其他像素”。我想要更多数学的东西来实现。
感谢。
答案 0 :(得分:4)
更多数学?好的,如何“找到过滤后图像的所有局部最大值,然后选择最高N”,这是该问题中的响应者推荐的内容。至于N,请使用您对场景的任何先前信息。例如,您对100个角落的棋盘感兴趣吗?然后设置N = 200以确保您获得大部分。
顺便说一下,这样做的一个方便方法是在滤波后的图像及其扩张版本中查找未更改的值,使用5x5平面结构元素进行扩张。