基于SURF算法的图像匹配

基础理论

2006Herbert Bay提出了SURF算法,该算法是对SIFT算法的改进,不仅继承了SIFT算法的优点,而且比SIFT算法速度快。下面是SURF算法的步骤。

1)建立积分图像

2)构建尺度空间

3)筛选特征点

4)计算特征点主方向

5)特征描述子生成

Matlab代码

%% 读取图像
I1= imread('baby1.JPG');  
I1=imresize(I1,0.6);     
I1=rgb2gray(I1);  
I2= imread('baby2.JPG');  
I2=imresize(I2,0.6);  
I2=rgb2gray(I2); 
%% 寻找特征点  
points1 = detectSURFFeatures(I1);  
points2 = detectSURFFeatures(I2);   
%% 计算描述向量  
[f1, vpts1] = extractFeatures(I1, points1);  
     [f2, vpts2] = extractFeatures(I2, points2); 
%% 进行匹配  
indexPairs = matchFeatures(f1, f2, 'Prenormalized', true) ;  
matched_pts1 = vpts1(indexPairs(:, 1)); 
matched_pts2 = vpts2(indexPairs(:, 2));  
 %% 显示
figure;
showMatchedFeatures(I1,I2,matched_pts1,matched_pts2,'montage');  
legend('matched points 1','matched points 2');    

输出图像

基于SURF算法的图像匹配_第1张图片

你可能感兴趣的:(机器视觉,Matlab,计算机视觉,人工智能)