基于FLANN特征匹配寻找已知物体.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计指导教师评语 成 绩:___________ 指导教师签字:___________ 目 录 目 录 3 1 选题背景及需求简介 4 2 总体设计 4 2.1系统功能组成 4 2.2开发工具 4 3 详细设计 5 3.1载入原始图片 5 3.2使用SURF算子检测关键点 5 3.3调用detect函数检测出SURF特征关键点,保存在vector容器中 5 3.4计算描述符(特征向量) 5 3.5使用FLANN匹配算子进行匹配 5 3.6计算出关键点之间距离的最大值和最小值 6 3.7存下匹配距离小于3*min_dist的点对 6 3.8绘制出匹配到的关键点 6 3.9显示最终结果 7 4 程序运行 7 4.1官方图像对 7 4.2个人图像对 7 5 参考资料 8 基于FLANN特征匹配寻找已知物体 1 选题背景及需求简介 计算机视觉是一个近几年来日趋成熟的领域。随着运算性能强劲而又价格实惠的计算设备的不断问世,创建复杂的图像应用从未像今天这般容易。OpenCV在计算机视觉领域扮演着重要的角色,它是一个基于开源发行的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。 特征点的检测和匹配是计算机视觉中非常重要的技术之一,在物体检测、视觉跟踪、三维重建等领域都有很广泛的应用。 程序部分在设计和开发阶段用到了很多网上的相关文献和资源,在本次设计中采用Microsoft Visual Studio2012版本和OpenCV2.4.9作为开发工具。 由于时间有限,代码部分分阶段开发,本次开发为第一阶段,主要实现了利用SURF检测器检测关键点、计算特征向量和采用FLANN算法匹配描述符向量。匹配准确率与时间效率等方面为第二阶段设计,在此不做介绍。 2 总体设计 2.1系统功能组成 在FLANN特征匹配的基础上,利用Homography映射找出已知物体。利用findHomography函数通过匹配的关键点找出相应的变换,再利用perspectiveTransform函数映射点群。 也就是分为以下两个步骤: (1)使用findHomography寻找匹配上的关键点的变换。 (2)使用perspectiveTransform来映射点。 2.2开发工具 Microsoft Visual Studio 2012 OpenCV 2.4.9 3 详细设计 3.1载入原始图片 Mat srcImage1 = imread( view11.bmp, 1 ); Mat srcImage2 = imread( view15.bmp, 1 ); 3.2使用SURF算子检测关键点 int minHessian = 400;//SURF算法中的hessian阈值 SurfFeatureDetector detector( minHessian );//定义一个SurfFeatureDetector(SURF) 特征检测类对象 vectorKeyPoint keypoints_object, keypoints_scene;//vector模板类,存放任意类型的动态数组 3.3调用detect函数检测出SURF特征关键点,保存在vector容器中 detector.detect( srcImage1, keypoints_object ); detector.detect( srcImage2, keypoints_scene ); 3.4计算描述符(特征向量) SurfDescriptorExtractor extractor; Mat descriptors_object, descriptors_scene; pute( srcImage1, keypoints_object, descriptors_object ); pute( srcImage2, keypoints_scene, descriptors_scene ); 3.5使用FLANN匹配算子进行匹配 FlannBasedMatcher matcher; vector DMatch matches; matcher.match( descriptors_object, descriptors_scene, matches ); double max_dist = 0; double min_dist =

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档