欢迎来到天天文库
浏览记录
ID:41698803
大小:303.14 KB
页数:8页
时间:2019-08-30
《基于FLANN特征匹配寻找已知物体》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告书2015/2016学年第1学期课程设计指导教师评语成绩:指导教师签字:目录31选题背景及需求简介42总体设计42.1系统功能组成42.2开发工具43详细设计53.1载入原始图片53.2使用SURF算子检测关键点53.3调用detect函数检测岀SURF特征关键点,保存在vector容器中53.4计算描述符(特征向量)53.5使用FLANN匹配算子进行匹配53・6计算出关键点Z间距离的最大值和最小值63.7存下匹配距离小于3*min_dist的点对63.8绘制出匹配到的关键点63.9显不最终结果74程序运行结果74.1官方图像对74.2个人图像对75参考资料8基于FLANN特征
2、匹配寻找已知物体1!1选题背景及需求简介计算机视觉是一个近几年来H趋成熟的领域。随着运算性能强劲而又价格实惠的计算设备的不断问世,创建复杂的图像应用从未像今天这般容易。OpenCV在计算机视觉领域扮演着重要的角色,它是一个基于开源发行的跨平台计算机视觉库,实现了图像处理和计算机视觉方而的很多通用算法。特征点的检测和匹配是计算机视觉中非常重要的技术之一,在物体检测、视觉跟踪、三维重建等领域都有很广泛的应用。程序部分在设计和开发阶段用到了很多网上的相关文献和资源,在本次设计屮釆用MicrosoftVisualStudio2012版本和0penCV2.4.9作为开发工具。由于时间有限,代码部分分
3、阶段开发,本次开发为第一阶段,主要实现了利用SURF检测器检测关键点、计算特征向量和采用FLANN算法匹配描述符向量。匹配准确率与时间效率等方面为第二阶段设计,在此不做介绍。2总体设计2.1系统功能组成在FLANN特征匹N己的基础上,利用Homography映射找出已知物体。利用findHomography函数通过匹配的关键点找出相应的变换,再利用perspectiveTransform函数映射点群。也就是分为以卜•两个步骤:(1)使用findHomography寻找匹配上的关键点的变换。(2)使用perspectiveTransform来映射点。2.2开发工具MicrosoftVisua
4、lStudio2012OpenCV2.4.93详细设计3.1载入原始图片MatsrcImage1=imread("viewl1.bmp:1);Matsrclmage2=inireacK,zviewl5・bmp",1);3.2使用SURF算子检测关键点intminllessian=400;//SURF算法中的hessian阈值SurfEeatureDetectordetector(minllessian);//定义一个SurfEeatureDetector(SURF)特征检测类对象vectorkeypoints_object,keypoints_scene;//vect
5、or模板类,存放任意类型的动态数组3.3调用detect函数检测出SURF特征关键点,保存在vector容器中detector・detect(srclmagcl,keypoints_object);detector・detect(srclmage2,keypointsscene);3.4计算描述符(特征向量)SurfDescriptorExtractorextractor;Matdeseriptors_objcct,deseriptors_scene;extractor,compute(srcTmagel,keypoints_object,deseriptors_object);extra
6、ctor.compute(srclniage2,keypoints_scene,deseriptors_scene);3.5使用FLANN匹配算子进行匹配FlannBasedMatchermatcher;vectormatches;matcher・match(descriptors_object,descriptors_scene,matches);doublemaxdist=0;doublemindist=100;//最小距离和最大距离3.6计算出关键点之间距离的最大值和最小值for(inti=0;i7、dist=matches[i]・distaneo;if(distmax^dist)max_dist=dist;printf(/z>Maxdist最大距离:%f〃,maxdist);printf(/z>Mindist最小距离:%f",min_dist);3.7存下匹配距离小于3*min_dist的点对std::vectorgoodmat
7、dist=matches[i]・distaneo;if(distmax^dist)max_dist=dist;printf(/z>Maxdist最大距离:%f〃,maxdist);printf(/z>Mindist最小距离:%f",min_dist);3.7存下匹配距离小于3*min_dist的点对std::vectorgoodmat
此文档下载收益归作者所有