sift,The Scale Invariant Feature Transform ,尺度不变特征变换,是检测图像中具有唯一性、对图像平移、旋转、缩放、甚至仿射变换(如从不同角度拍摄图片)保持不变性的图像局部特征的一种有效方法。可以容易地应用到图像匹配的应用中,如目标检测与识别,或者计算图像间的几何变换。

该算法由David. Lowe在2004年发表,并在好像是2007年申请了专利。

网络已有几个版本的实现

请大家查看sift创始人的代码:David Lowe's SIFT code:

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


不过更易用的似乎是Rob Hess维护的sift 库:

http://blogs.oregonstate.edu/hess/code/sift/


但在使用rob代码的时候发现其非关键代码中的一个错误,而且他的代码只适于做验证,我做了一些小小的改变,使之可以更为方便的使用,可以再命令行下输入图片,并保存结果为图片和文本。文件名是被硬编码进去的



看一下效果吧:

特征图示:

特征匹配

但是sift特征应用也有局限,在我的棋盘图像中很明显,请仔细看特征点的匹配