您的位置:首页 > 其它

Lowe的SIFT(尺度不变特征变换)程序使用详细说明

2018-01-14 15:45 302 查看
原文:http://blog.sina.com.cn/s/blog_4c191f370100u67y.html

系统:Debian Lenny

程序下载:http://www.cs.ubc.ca/~lowe/keypoints/

使用说明请看README。

Matlab中使用:

1、提取sift描述子:

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

image:输入图像矩阵;

descrips:规范化的特征描述子(n×128维;每行元素平方和为1)

locs:关键点(n×4;每行1、2个元素为关键点坐标,第3个元素为关键点的尺度,第4个元素为关键点的角度[单位:弧度])

具体过程:

(1)Matlab读入图片并存为tmp.pgm;

(2)调用可执行文件生sift成特征描述文件tmp.key:

第1行:第1个元素为特征点个数,第2个元素为特征描述子维数

第2行:关键点locs

第3~9行:第1个关键点的128维特征

(3)将tmp.key读入为Matlab的矩阵并进行规范化。

2、显示关键点:

showkeys(image, locs);

箭头方向代表关键点方向,长度代表尺度scale(显示时放大了6倍);

3、特征点匹配:

match('scene.pgm','book.pgm');

调用sift生成关键点特征描述子,通过计算两幅图片两两关键点对应特征向量的夹角(越小越相似)。

匹配规则:若A图中关键点a与B图最相似关键点为b1,次相似关键点为b2,并且a与b1的夹角小于distRatio(0.6)倍的a与b2的夹角,则a与b1匹配,否者a不与B图中任何点匹配。

直接从命令行运行:

1、$make 生成用于匹配的match程序

2、提取关键点特征描述子:

$ ./sift <book.pgm >book.key

$ ./sift <scene.pgm >scene.key

(显示关键点:$ ./sift -display <book.pgm >result.pgm)

3、匹配:

./match -im1 book.pgm -k1 book.key -im2 scene.pgm -k2 scene.key > out.pgm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: