SURF特征描述与检测的Matlab实现

Posted 白马负金羁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SURF特征描述与检测的Matlab实现相关的知识,希望对你有一定的参考价值。

SIFT特征描述算子在生成特征矢量时使用的是高斯图像,而SURF特征描述算子在生成特征矢量时用到的则是积分图。这样做的目的是为了充分利用特征点检测时形成的中间结果,也就是积分图,从而避免在特征矢量生成时对图像进行重复计算。本文将通过MATLAB代码来演示SURF特征描述算法的原理。如果需要了解该算法的更多细节,推荐参考《数字图像处理原理与实践(MATLAB版)》一书。

首先给出一个测试用的主程序,它调用了SURF的相关实现函数,然后在两幅图像中搜索特征点并进行匹配。

I1=imread(\'box.png\');
I2=imread(\'box_in_scene.png\');

Options.upright=true;
Options.tresh=0.0001;
Ipts1=OpenSurf(I1,Options);
Ipts2=OpenSurf(I2,Options);

D1 = reshape([Ipts1.descriptor],64,[]);
D2 = reshape([Ipts2.descriptor],64,[]);

err=zeros(1,length(Ipts1));
cor1=1:length(Ipts1);
cor2=zeros(1,length(Ipts1));

for i=1:length(Ipts1)
    distance=sum((D2-repmat(D1(:,i),[1 length(Ipts2)])).^2,1);
    [err(i),cor2(i)]=min(distance);
end

[err, ind]=sort(err);
cor1=cor1(ind);
cor2=cor2(ind);

I = zeros([max(size(I1,1),size(I2,1)),size(I1,2)+size(I1,2)]);
I(1:size(I1,1),1:siz

以上是关于SURF特征描述与检测的Matlab实现的主要内容,如果未能解决你的问题,请参考以下文章

SURF特征描述与检测的Matlab实现

SURF特征描述与检测的Matlab实现

OpenCV——SURF特征检测与匹配

MATLAB教程案例26图像特征点提取算法matlab仿真与分析——sift,surf,kaze,corner,BRISK等

Matlab/CV系列基于SIFT/SURF配准和小波变换图像融合Matlab仿真

SIFT特征描述与检测的Matlab实现