当前位置:文档之家› Moravec算子特征提取

Moravec算子特征提取

点特征提取编程实习报告
一.实习简介
本次实习利用VC++6.0编程实现了对8位BMP灰度图像的读取、显示,并用Moravec算子对图像进行点特征的提取。

二.程序设计
1.用MFC创建一个多文档程序框架,用来显示BMP图像:
2.为该程序框架添加菜单:
3.创建一个对话框输入参数:
4.最后提取结果可以显示在视图中:
三.程序框图及核心代码Array
分别定义四个函数计算四个方向的灰度差平方和:
提取特征点:
实验结果分析
1、下图中阈值为8000,窗口大小从上到下从左到右分别为9*9、7*7、5*5、3*3。


以看出随着窗口的增大,提取到的特征点个数越来越少,但是精度提高,可以防止将噪声提取出来。

2、下图中窗口大小为9,阈值从左到右从上到下分别为20000、15000、10000、5000。

可以看出,随着阈值的增大,能投提取到的特征点越来越少,只有灰度变化十分剧烈的点才能被提取出来,如下图中左上角是阈值为20000时的提取结果,可以发现没有提取出任何特征点。

实习总结
Moravec 算子是点特征提取算子中的经典算子之一,它具有计算量小, 不丢失灰度信息等优点。

用该算子提取特征点时阈值的选取直接影响着提取结果。

如本次实习过程中所用的图像是武汉地区的TM影像,这幅影像的灰度范围很小,所以阈值不宜取得过大,否则会丢失很多特征点,如:当阈值选为20000时,没有提取出任何特征点。

为了验证对比度对特征点提取的影响,我用Photoshop对图像做了一个对比度的增强,之后用5*5的窗口和10000的阈值对其进行特征点的提取并与原图像的提取结果做了对比,发现增强了对比度的图像中提取出的特
征点确实比原图像中的特征点多,如下图:
所以,虽然Moravec算子是点特征提取的经典算子,但是提取效果还是很大程度上受参数设置的影响,不同灰度范围的图像需要不同的阈值以及不同的窗口大小,这需要长久的实验来积累经验确定参数。

或者可以通过计算整幅图像的
灰度均值的方法是程序自动确定阈值,但没有再本次实习中进行实验。

相关主题