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

原文: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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值