Matlab Sift特征调用,基于SiftDemoV4

这两天用到了Sift特征,在网上找到了一份代码,下载后有一些注意事项。源代码网址如下:

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

Matlab环境下,主要的命令有三个:

特征提取

[image, descrips, locs] = sift(‘scene.pgm’);

参数:图片地址,如果想自己直接传入Matlab中的矩阵,可以自行修改sift.m,sift.m其实就是一个调用图片的脚本,真正的特征提取过程封装为了siftWin32.exe。
输出:image —— uint8灰度图,descrips —— K-by-128特征矩阵,K为特征个数,locs —— K-by-4矩阵,[x, y, r, theta], theta为角度,-pi~pi。

可视化

showkeys(image, locs);

参数:image —— 原图或原图的灰度图(作为画布背景),locs —— sift()得到的矩阵。

特征点匹配

match(‘scene.pgm’,‘book.pgm’);
匹配两张图片中的sift特征,并且用线连接可视化。

可以修改match.m中的

...
distRatio = 0.6; 
...

该参数为匹配阈值。

注意:修改sift.m的输入参数后,也要相应的修改match.m。这里两个函数的参数类型应保持一致。

Windows环境调用

特征可视化

cmd控制台cd到当前目录,键入命令如下:

% siftWin32 -display dst.pgm

将可视化sift特征写入dst.pgm,src.pgm位于同一文件夹内。

下面的命令可以显示。

% xv dst.pgm

或者 www.irfanview.com 提供了免费的pgm查看器。使用PS也可以直接查看

更多

更多内容参看readme以及代码内的注释,写的相当细致。

你可能感兴趣的:(图像处理,sift算法,matlab,计算机视觉)