文章目录
一、Harris角点检测介绍
1.1 角点
如果像素周围显示存在多于一个方向的边,我们认为该点为兴趣点。该点就称为角点。角点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较变化 。下图是不同类型的角点:
1.2 基本思想
Harris角点检测算法基本思想:使用一个固定窗口在图像上进行任意方向上的滑动,比较窗口中的像素灰度在窗口滑动前与滑动后的变化程度。如果在任意方向上的滑动都有着较大灰度值的变化那么我们可以认为该窗口中存在角点。
1.3 实验原理
首先,导入图片后使用compute_harris_response(im) 函数,返回像素值为 Harris 响应函数值的一幅图像。之后,可以从这幅图像中挑选出需要的信息。然后,选取像素值高于阈值的所有图像点;再加上额外的限制,即角点之间的间隔必须大于设定的最小距离。这种方法会产生很好的角点检测结果。为了实现该算法,我们获取所有的候选像素点,以角点响应值递减的顺序排序,然后将距离已标记为角点位置过近的区域从候选像素点中删除。这里的实现使用get_harris_points() 函数。
二、分析不同场景下不同图片对实验结果的影响
2.1 场景一:纹理平坦
2.1.1 实验结果
1.正面,实验结果共显示四张图,分别为harris响应函数,以及使用阈值为0.01、0.05和0.1检测出的角点。角点如下图所示:
2.侧面,如下图所示:
3.尺度变化,如下图所示:
4.不同光照,如下图所示:
5.旋转,如下图所示:
2.1.2 分析
不同尺度对比:尺度较小的图片检测出的角点会出现粘连的情况,相比之下尺度较大的则不会,