Matlab实现sift特征检测+图像拼接

Matlab实现sift特征检测+图像拼接共有12个m文件,其中main为主程序,点击运行即可。

一、部分代码示例

close all;
clear;
clc;

im1=imread('test3.png');
im2=imread('test4.png');
 
gray1=img2gray(im1);
gray2=img2gray(im2);
 
[des1,loc1]=sift(gray1);
[des2,loc2]=sift(gray2);
 
figure;
drawPoints(im1,loc1,im2,loc2);
 
Num=3;
Thresh=0.85;

match=featureMatch(des1,des2,Num,Thresh);

loc1=loc1(match(:,1),:);
loc2=loc2(match(:,2),:);
 
figure;
linePoints(im1,loc1,im2,loc2);
 
agl=getRotAgl(loc1,loc2);
 
figure;
drawRotAglHist(agl);

opt=optIndex(agl);
loc1=loc1(opt,:);
loc2=loc2(opt,:);
 
figure;
linePoints(im1,loc1,im2,loc2);
 
T=getTransMat(gray1,loc1,gray2,loc2);
im=imRegist(im1,im2,T);
 
figure;
imshow(im);

全部详细代码见资源:Matlab实现sift特征检测+图像拼接源码

二、运行结果

1.对两幅图进行特征点检测:

2.全部对应点的匹配情况:

3.经过筛选后能作为图像配准控制点的SIFT匹配特征点连接:

4.图像拼接结果:

5.原图:

感谢博主destiny0321

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