图像匹配算法在OPENCV中的研究与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、VS2010中建立一个OPENCV的工程
使用的opencv版本号是2.4.4
以上两图分别是匹配原图和匹配一张无关图的匹配结果。可以看出匹配结果准确。匹配准确率需要后面实验测试得到结论。
匹配结论中包括:两张图各自的特征点数,匹配的点数,最大和最小距离(该距离是欧式距离),优秀的匹配点。
上图是MFC设计的简要界面。点击开始匹配后,弹出上面的匹配结果。
二、学习的知识点
1、sift算法(surf算法基本与sift算法相同)
sift算法是一种基于尺度空间的算法。该算法利用的特征是图像的局部特征,使其对旋转、尺度缩放、亮度变化具有保持不变性,并在对视角变化、放射变换、噪声也具有很好的保持一定程度的稳定性。
其独特性好,信息量丰富,适用于在大量数据库中进行快速、准确的匹配。
sift算法步骤:
S1:提取关键点。对图像进行处理,提取出图像的关键点,产生关键点集合。
S2:建立两幅图像之间的对于关系。通过两张图像的特征点进行两两比较,找出相匹配的若干对特征点。然后用线连接起来。
S3:消除错误匹配点。用参数估计的方法,对匹配点反复测试、不断迭代运算,消除错误的匹配点。
S4:统计匹配点和匹配点的相关信息。
流程图如下
2、SURF算法和SIFT算法的区别主要在于速度和精度上。SURF描述子大部分是基于强度的差值,计算更快捷,而SIFT描述子通常在搜索正确的特征时更加精确。
两者在OPENCV具体实现中没有很大的差异。都使用了cv::FeatureDetector接口,使用cv::drawKeypoint函数。
3、在面对尺度变化问题时,需要分析图像在拍摄时与目标物体的距离。而SIFT算法具有尺度不变的特性,每个检测的特征点都伴随着对应的尺寸因子。能克服这个问题。SURF算法是SIFT算法的高效变种。同样具有尺幅不变的特征。两者在3D视点变化上的性特,都有一定的体现,具体性能指标需要实验测试。
所谓的尺度空间,在OPENCV中被形象地描述为一个图像金字塔,向下采样一般用高斯金字塔。(理论知识,不太懂)
接下来的计划:
进一步完善MFC的界面,提高人机交互的友好型。
研究原理。
测试相关的实验数据,完善论文框架,提高论文结论的可靠性。