SIFT特征简介

来源:互联网 发布:sqlserver评估期已过 编辑:程序博客网 时间:2024/06/08 17:50


SIFT,尺度不变特征转换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出关键点。是一种局部描述子。

1,简介
SIFT由David Lowe在1999年提出,在2004加以完善。SIFT在图像的特征描述方面当之无愧可称之为最红最火的一种,许多人对SIFT进行了改进,诞生了SIFT的一系列变种。SIFT已经申请了专利。
2,SIFT算法大致有四个步骤:
1,尺度空间极值检测。在尺度空间通过高斯微分函数来检测潜在的对于尺度和旋转不变的兴趣点。
2,关键点定位。在兴趣点位置上,确定关键点的位置和尺度。
3,方向确定。基于图像局部的梯度方向,给每个关键点分配方向。

4,关键点描述。在每个关键点的领域内测量图像局部的梯度。最终用一个特征向量来表达。





sift创始人的代码:David Lowe's SIFT code:

http://www.cs.ubc.ca/~lowe/keypoints


1 共有三段Matlab代码源文件

   match.m:测试程序

     功能:该函数读入两幅(灰度)图像,找出各自的 SIFT 特征, 并显示连接两幅图像中被匹配的特征点(关键特征点(the matched keypoints)直线(将对应特征点进行连接)。判断匹配的准则是匹配距离小于distRatio倍于下一个最近匹配的距离( A match is accepted only if its distance is less than distRatio times the distance to the second closest match.
                该程序返回显示的匹配对的数量。( It returns the number of matches displayed.)

    调用实例: match('desk.jpg','book.jpg');

        ( 假如,想测试一个含有一本书的桌面的图像 和一本书的图像之间特征匹配)

     调用方法和参数描述:略。

     注意:(1)图像为灰度图像,如果是彩色图像,应该在调用前利用rgb2gray转换为灰度图像。

                 (2)参数distRatio 为控制匹配点数量的系数,这里取 0.6,该参数决定了匹配点的数量,在Match.m文件中调整该参数,获得最合适的匹配点数量

   sift.m :尺度不变特征变换(SIFT算法)的核心算法程序

     具体原理详见David G. Lowe发表于2004年Int Journal of Computer Vision,2(60):91-110的那篇标题为“Distivtive Image Features from Scale -Invariant Keypoints" 的论文

     功能:该函数读入灰度图像,返回SIFT 特征关键点( SIFT keypoints.)
  

 调用方法和参数描述:

  调用方式:[image, descriptors, locs] = sift(imageFile)

  输入参数( Input parameters):

    imageFile: 图像文件名.

     输出或返回参数( Returned):
       image: 是具有double format格式的图像矩阵
      descriptors: 一个 K-by-128 的矩阵x, 其中每行是针对找到的K个关键特征点(the K keypoints)的不变量描述子. 这个描述子(descriptor)是一个拥有128个数值并归一化为单位长度向量.
       locs: 是K-by-4 矩阵, 其中的每一行具有四个数值,表示关键点位置信息 (在图像中的行坐标,列坐标(row, column) ,注意,一般图像的左上角为坐标原点), 尺度scale,高斯尺度空间的参数,其中该参数也决定了frame(结构)确定的图像disk的大小, 最后一个参数是方向orientation). 方向参数的范围是[-PI, PI] 单位为弧度.

%

    

    appendimages.m:    该函数创建一个新的图像分别包含两个匹配的图像和他们之间的匹配对的连接直线.

 本文转自:http://zerol.blog.51cto.com/985518/350105


0 0
原创粉丝点击