【图像配准】SIFT算法之图像配准【Matlab 107期】

一、简介

1,SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
a,不变性:
——对图像的旋转和尺度变化具有不变性;
——对三维视角变化和光照变化具有很强的适应性;
——局部特征,在遮挡和场景杂乱时仍保持不变性;
b,辨别力强:
——特征之间相互区分的能力强,有利于匹配;
c,数量较多:
——Lowe原话:一般500*500的图像能提取约2000个特征点(这个数字依赖于图像内容和几个参数的选择)。
在高斯差分(Difference of Gaussian,DOG)尺度空间中提取极值点并进行优化,从而获取特征点。
【图像配准】SIFT算法之图像配准【Matlab 107期】_第1张图片
2,SIFT算法点检测的具体步骤:
——构建尺度空间;
——构造高斯差分尺度空间;
——DoG尺度空间极值点检测;
——特征点精确定位;
——去除不稳定点;

二、源代码

close all;clear all;clc;
 
im1=imread('testdata\x1.jpg');
im2=imread('testdata\x2.jpg');
 
gray1=zoo_x2gray(im1);
gray2=zoo_x2gray(im2);
 
[des1,loc1]=zoo_sift(gray1);
[des2,loc2]=zoo_sift(gray2);
 
figure;zoo_drawPoints(im1,loc1,im2,loc2);
 
Num=3;
Thresh=0.85;
 
match=zoo_BidirectionalMatch(des1,des2,Num,Thresh);
 
clear des1 des2
loc1=loc1(match(:,1),:);
loc2=loc2(match(:,2),:);
 
figure;zoo_linePoints(im1,loc1,im2,loc2);
 
agl=zoo_getRotAgl(loc1,loc2);
 
figure;zoo_drawRotAglHist(agl);
 
opt=zoo_optIndex(agl);
loc1=loc1(opt,:);
loc2=loc2(opt,:);
 
figure;zoo_linePoints(im1,loc1,im2,loc2);
 
T=zoo_getTransMat(gray1,loc1,gray2,loc2);
im=zoo_imRegist(im1,im2,T);
 
figure,imshow(im);

三、运行结果


【图像配准】SIFT算法之图像配准【Matlab 107期】_第2张图片

四、备注

完整代码或者代写添加QQ912100926
往期回顾>>>>>>
【图像压缩】图像处理教程系列之图像压缩【Matlab 074期】
【图像分割】图像处理教程系列之图像分割(一)【Matlab 075期】
【图像分割】图像处理教程系列之图像分割(二)【Matlab 076期】
【模式识别】银行卡号之识别【Matlab 077期】
【模式识别】指纹识别【Matlab 078期】
【图像处理】基于GUI界面之DWT+DCT+PBFO改进图像水印隐藏提取【Matlab 079期】
【图像融合】CBF算法之图像融合【Matlab 080期】
【图像去噪】自适应形态学之图像去噪【Matlab 081期】
【图像增强】DEHAZENET和HWD之水下去散射图像增强【Matlab 082期】
【图像增强】PSO寻优ACE之图像增强【Matlab 083期】
【图像重建】ASTRA算法之图像重建【Matlab 084期】
【图像分割】四叉树之图像分割【Matlab 085期】
【图像分割】心脏中心线之提取【Matlab 086期】
【图像识别】SVM植物叶子之疾病检测和分类【Matlab 087期】
【图像识别】基于GUI界面之模板匹配手写数字识别系统【Matlab 088期】
【图像识别】基于GUI界面之不变矩的数字验证码识别【Matlab 089期】
【图像识别】条形码识别系统【Matlab 090期】
【图像识别】基于GUI界面RGB和BP神经网络之人民币识别系统【Matlab 091期】
【图像识别】CNN卷积神经网络之验证码识别【Matlab 092期】
【图像分类】极限学习分类器之对遥感图像分类【Matlab 093期】
【图像变换】DIBR-3D之图像变换【Matalb 094期】
【图像分割】模糊聚类算法之FCM图像分割【Matlab 095期】
【模式识别】银行监控系统之人脸识别【Matlab 096期】
【模式识别】基于GUI界面之疲劳检测系统【Matlab 097期】
【图像识别】国外车牌识别【Matlab 098期】
【图像分割】最大类间方差法(otsu)之图像分割【Matlab 099期】
【图像分割】直觉模糊C均值聚类之图像分割IFCM【Matlab 100期】
【图像分割】基于matlab形态学重建和过滤改进FCM算法(FRFCM)之图像分割【Matlab 101期】
【图像增强】局部对比度增强CLAHE算法之直方图增强【Matlab 102期】
【图像融合】Frequency Partition之图像融合【Matlab 103期】
【图像评价】SVM之图像无参考质量评价【Matlab 104期】
【图像边缘检测】最小二乘法用于椭圆边缘检测【Matlab 105期】
【图像加密】基于GUI界面之混沌系统图像加密解密【Matlab 106期】

你可能感兴趣的:(matlab,图像处理)