- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SIFT算法详解 (附有完整代码)
⼀⼀、、SIFT算算法法简简介介
SIFT,即尺度不变特征变换 (Sc le-inv ri nt fe ture tr nsform,SIFT),是⽤于领域的⼀种描述。这种描述具有尺度不变性,
可在图像中检测出关键点,是⼀种局部特征描述⼦。该⽅法于1999年由 ⾸先发表于计算机视觉国际会议 (Intern tion l Conference on
Computer Vision,),2004年再次经D vid Lowe整理完善后发表于Intern tion l j ourn l of computer vision ()。截⽌20 14年8
⽉,该论⽂单篇被引次数达25000余次。
1、、SIFT算算法法 的的特特点点
(1) SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视⾓变化、仿射变换、噪声也保持⼀定程度的稳定性 ;
(2)独特性 (Distinctiveness)好,信息量丰富,适⽤于在海量特征数据库中进⾏快速、准确的匹配;
(3)多量性,即使少数的⼏个物体也可以产⽣⼤量的SIFT特征向量 ;
(4)⾼速性,经优化的SIFT匹配算法甚⾄可以达到实时的要求;
(5)可扩展性,可以很⽅便的与其他形式的特征向量进⾏联合。
2、、SIFT算算法法可可 以以解解决决 的的问问题题
⽬标的⾃⾝状态、场景所处的环境和成像器材的成像特性等因素影响图像配准/ ⽬标识别跟踪的性能。⽽SIFT算法在⼀定程度上可解
决 :
(1) ⽬标的旋转、缩放、平移 (RST)
(2)图像仿射/投影变换 (视点viewpoint)
(3)光照影响 (illumin tion)
(4) ⽬标遮挡 (occlusion)
(5)杂物场景 (clutter)
(6)噪声
SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的⽅向。SIFT所查找到的关键点是⼀些⼗分突出,不会
因光照,仿射变换和噪⾳等因素⽽变化的点,如⾓点、边缘点、暗区的亮点及亮区的暗点等。
⼆⼆、、SIFT算算法法分分为为如如下下四四步步
1. 尺尺度度 空空间间极极值值检检测测
有哪些信誉好的足球投注网站所有尺度上的图像位置。通过⾼斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
2. 关关键键点点定定位位
在每个候选的位置上,通过⼀个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3. ⽅⽅ 向向确确 定定
基于图像局部的梯度⽅向,分配给每个关键点位置⼀个或多个⽅向。所有后⾯的对图像数据的操作都相对于关键点的⽅向、尺度和位
置进⾏变换,从⽽提供对于这些变换的不变性。
4. 关关键键点点描描述述
在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成⼀种表⽰,这种表⽰允许⽐较⼤的局部形状的
变形和光照变化。
三三、、SIFT具具体体实实现现
说明:代码实现主要有七个源⽂件,我和⼤家⼀样有时候下载了好⼏个资源然⽽没有⼀个能⽤的,导致最后都不知道要下载哪⼀个、是否要
下载 ;所以这⾥直接把代码贴出来了!
1、、mySift.h
#pragma once // 防⽌头⽂件重复包含和下⾯作⽤⼀样
#includeiostream
#includevector
#includeopencv2\core\core.hpp
#includeopencv2\features2d\features2d.hpp
using namespace std ;
using namespace cv ;
/ 定义常量 /
//⾼斯核⼤⼩和标准差关系,size=2 (GAUSS_ KERNEL_ RAT IO sigma)+1,经常设置GAUSS_ KERNEL_ RAT IO=2-3之间
const double GAUSS_ KERNEL_ RAT IO = 3 ;
const int MAX_OCTAVES = 8 ; //⾦字塔最⼤组数
const float CONT R_T HR = 0.04f ; //默认是的对⽐度阈值(D(x))
const float CU
文档评论(0)