码迷,mamicode.com
首页 > 其他好文 > 详细

计算视觉——Harris角点检测

时间:2020-02-25 23:36:39      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:特征点   idt   视觉   span   blog   流程   完全   图像   形式   

目录

一、Harris 角点检测
1.1 Harris 角点检测原理
1.2角点检测算法
二、基于Harris角点检测对不同类型图像做出的对比实验
2.1 平坦图像的Harris角点检测实验结果
2.2 边缘丰富图像的Harris角点检测实验结果
2.3角点丰富图像的Harris角点检测实验结果
三、结论与总结

 

 

一.、Harris 角点检测
1.1 Harris 角点检测原理
Harris角点检测算法是最简单的角点检测方法之一。它的基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。
用数学方法来刻画角点特征:

技术图片

公式解释:

>[u,v]是窗口的偏移量

>(x,y)是窗口内所对应的像素坐标位置,窗口有多大,就有多少个位置

>w(x,y)是窗口函数,最简单情形就是窗口内的所有像素所对应的w权重系数均为1。但有时候,我们会将w(x,y)函数设定为以窗口中心为原点的二元正态分布。如果窗口中心点是角点时,移动前与移动后,该点的灰度变化应该最为剧烈,所以该点权重系数可以设定大些,表示窗口移动时,该点在灰度变化贡献较大;而离窗口中心(角点)较远的点,这些点的灰度变化几近平缓,这些点的权重系数,可以设定小点,以示该点对灰度变化贡献较小,那么我们自然想到使用二元高斯函数来表示窗口函数,这里仅是个人理解,大家可以参考下。

所以通常窗口函数有如下两种形式:
技术图片

 

 

 根据上述表达式,当窗口处在平坦区域上滑动,可以想象的到,灰度不会发生变化,那么E(u,v) = 0;如果窗口处在比纹理比较丰富的区域上滑动,那么灰度变化会很大。算法最终思想就是计算灰度发生较大变化时所对应的位置,当然这个较大是指针任意方向上的滑动,并非单指某个方向。

1.2角点检测算法
角点检测算法可归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。Harris角点检测是特征点检测的基础,提出了应用邻近像素点灰度差值概念,从而进行判断是否为角点、边缘、平滑区域。Harris角点检测原理是利用移动的窗口在图像中计算灰度变化值,其中关键流程包括转化为灰度图像、计算差分图像、高斯平滑、计算局部极值、确认角点。

二、基于Harris角点检测对不同类型图像做出的对比实验

2.1 平坦图像的Harris角点检测实验结果

2.1.1 正面

技术图片

 

 技术图片

2.1.2 侧面

技术图片

 

 技术图片

2.1.3 旋转变化

技术图片

 

 技术图片

2.1.4

技术图片

 

 技术图片

2.1.5

技术图片

 

 技术图片

可以看到,中间区域的角点都没有的发生明显的改变,角度的变换会使变换周边的角点随着角度变化消失或者增加新的角点。

harris角点检测算子对亮度和对比度的变化不敏感
这是因为在进行Harris角点检测时,使用了微分算子对图像进行微分运算,而微分运算对图像密度的拉升或收缩和对亮度的抬高或下降不敏感。换言之,对亮度和对比度的仿射变换并不改变Harris响应的极值点出现的位置,但是,由于阈值的选择,可能会影响角点检测的数量。

2.2 边缘丰富图像的Harris角点检测实验结果

2.2.1 正面

技术图片

 

 技术图片

2.2.2 侧面

技术图片

 

 技术图片

 

 

2.2.3 旋转变化

技术图片

技术图片

2.2.4 远近变化

技术图片

 

 

技术图片

2.2.5 亮度变化

技术图片

 

 由于掌握不好房间亮度,导致无法生成有效结果

技术图片

 

 

技术图片

 

 

对比正常角度与旋转变化的结果可以证实

Harris角点检测算子具有旋转不变性
Harris角点检测算子使用的是角点附近的区域灰度二阶矩矩阵。而二阶矩矩阵可以表示成一个椭圆,椭圆的长短轴正是二阶矩矩阵特征值平方根的倒数。当特征椭圆转动时,特征值并不发生变化,所以判断角点响应值RR也不发生变化,由此说明Harris角点检测算子具有旋转不变性。

2.3角点丰富图像的Harris角点检测实验结果

2.3.1原图

技术图片

技术图片

 

 

 2.3.2 侧面

技术图片

技术图片

 2.3.3 旋转变化

技术图片

技术图片

 

 

 2.3.4 远近变化

技术图片

 

 

 

技术图片

 

 

 2.3.5 光线变化

技术图片

同上,由于掌握不好亮度,导致无法生成有效结果

结论:可以明显看到侧面相当于正面来说角点数大幅度减少,经过实验还可得知一定程度的光照可以使得角点更易被捕捉,而太明亮或者太暗都会使实验结果不理想,甚至无法识别到角点,但角点的关键点并不会改变。

同时可以看到远处与近处图片的对比,关键点明显改变,可证实:

Harris角点检测算子不具有尺度不变性
正如下图所示,当右图被缩小时,在检测窗口尺寸不变的前提下,在窗口内所包含图像的内容是完全不同的。左侧的图像可能被检测为边缘或曲线,而右侧的图像则可能被检测为一个角点。

2.4 代码

技术图片

 

 

三、总结

1.对于正面图像和侧面图像的比较可以看出,正面图像的细节特征点较为丰富,也因此检测标注会更加复杂,而侧面图像则会隐藏掉很多细节特征,标注点也就更简单。

2.对于正面图像和旋转图像的比较可以看出,两者并没有太多不同,是因为图像只是经过旋转的话并不会改变特征点,只是特征点的水平位置发生改变。Harris角点检测算子使用的是角点附近的区域灰度二阶矩矩阵。而二阶矩矩阵可以表示成一个椭圆,椭圆的长短轴正是二阶矩矩阵特征值平方根的倒数。当特征椭圆转动时,特征值并不发生变化,所以判断角点响应值R也不发生变化。

3.对于正面图像和亮度变化图像的比较可以看出,亮度变化对于角点检测还是具有影响,如果是图像亮度较大,则会让图像里的特征点不明显,从而导致检测失败,图像亮度过小也是同理,只有亮度合适才能让图像细节更丰富。

4.该算法对于亮度有一定要求,过暗无法检测到角点

 

计算视觉——Harris角点检测

标签:特征点   idt   视觉   span   blog   流程   完全   图像   形式   

原文地址:https://www.cnblogs.com/zzb123456789/p/12364340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!