精华内容
下载资源
问答
  • 图像配准算法matlab

    2017-01-10 09:51:20
    该文档包含最新的图像配准算法,该算法已经在国际知名期刊出版,文档包含详细代码实现连接。
  • MATLAB版代码)红外与可见光图像配准算法 针对电气设备同一场景的红外与可见光图像间一致特征难以提取和匹配的问题,提出了一种基于斜率一致性的配准方法。首先通过数学形态学方法分别提取红外与可见光图像的边缘...
  • 针对电气设备同一场景的红外与可见光图像间一致特征难以提取和匹配的问题,提出了一种...最后通过最小二乘法求得仿射变换模型参数并实现两幅图像配准。资源为该算法MATLAB版本,其中main.m是主函数,内附测试图片。
  • 代码MATLAB编程实现了基于互信息的图像配准。采取的是改进的Powell搜索策略算法,在4个方向上采用的是黄金分割法。当基准图像和待配准图像的互信息达到最大时,两幅图像配准的效果最好,同时获得此时图像的变换系数...

       代码MATLAB编程实现了基于互信息的图像配准。采取的是改进的Powell搜索策略算法,在4个方向上采用的是黄金分割法。当基准图像和待配准图像的互信息达到最大时,两幅图像配准的效果最好,同时获得此时图像的变换系数,然后进行空间变换,获得图像融合图。

    程序下载链接:https://download.csdn.net/download/weixin_42137289/12564838

    运行结果一

    下图中图4-1为十字架参考图像,图4-2为十字架浮动图像,图4-3为获得空间变换参数后的变换图像,图4-4为参考图像和浮动图像的配准后图像

    运行结果二

       在下图中, 图4-5 为一幅名为圣保罗教堂的钥匙图像,是参考图像,图4-6为浮动图像,该图像与图4-5相比,X轴和Y轴方向上发生一定的移动,并且发生一定的旋转。图4-7为获得空间变换参数后经过空间变换的图像,图4-8为配准效果图

    运行结果三

    下图中图4-9为一幅人脸图像,作为参考图。图4-10为另一幅人脸图像,二者的神情是有一定差异的,作为浮动图像,将这两张图像进行配准。图4-11是进行优化策略获得配准参数,对图4-10经过空间变换获得的图像。图4-12为参考图像和浮动图像的配准效果图。

     表4-1为程序运行时,获得的图像匹配参数以及互信息值和图像配准运行时间。 

    表4-1  配准参数表

     图像标号

    X轴偏移量

     Y轴偏移量

     旋转角度

     互信息值

    图像配准时间(s)

    4-1与4-2

    0.46625

    -0.50701

    7.19095

    0.6760

    131.219000

    4-5与4-6

    0.52944

    2.84241

    3.55035

    1.8618

    301.500000

    4-8与4-9

    4.06384

    -14.09414

    7.59691

    1.3424

    686.828000

     

    从互信息大小来看,图4-5和图4-6的互信息值最大,得到的图像配准的效果最好,但是我们不能把互信息的大小作为评判三队图像中那对图像配准的好坏,因为带配准的图像不论图和平移旋转,两幅图像的相互关系是一定的即互信息的大小是一定的,它们所包含的相同信息是有限度的,所以,只能与本身图像或者参考图像相比,来判断图像配准的好坏。

    从配准时间来看,可以发现,图像越复杂,图像配准花费的时间越长。比如对于十字架图像的配准来说,图像比较简单,花费的时间最少;对于人脸图像来说,图像相对来说比较复杂,花费的时间最长。

    从图像配准的整体时间来看,基于Harris角点的图像配准花费的时间才几秒,而基于互信息的图像处理花费的时间远远大于几秒,这是基于互信息图像配准的缺点。具体上对本方法分析,一方面是互信息计算涉及到大量的浮点运算,另一方面是采用的是Powell搜索策略,在搜索的每个方向上,用黄金分割法搜索每一小步,都需要计算并比较互信息,花费很长时间。

    从图像配准的效果来看,尤其是对于刚体变换,获得到的空间变换参数是很精确的图像的配准效果还是不错的。本文使用的方法获得参数是3个,对于二维变换,还能满足要求,但是对于三维图像,匹配的效果很差,不能满足要求。

     

    程序下载链接:https://download.csdn.net/download/weixin_42137289/12564838

    展开全文
  • 红外与可见光图像配准算法--MATLAB

    万次阅读 多人点赞 2016-03-11 16:39:07
    2016-07-08更新总体方法简述:针对电气设备同一场景的红外与可见光图像间一致特征难以提取和匹配的问题,提出了一种基于斜率...最后通过最小二乘法求得仿射变换模型参数并实现两幅图像配准。实验结果表明,该方法...

    2016-07-08更新

    总体方法简述:针对电气设备同一场景的红外与可见光图像间一致特征难以提取和匹配的问题,提出了一种基于斜率一致性的配准方法。首先通过数学形态学方法分别提取红外与可见光图像的边缘,得到粗边缘图像;然后通过SURF算法提取两幅边缘图像的特征点,根据正确的匹配点对之间斜率一致性的先验知识,进行特征点匹配;最后通过最小二乘法求得仿射变换模型参数并实现两幅图像的配准。实验结果表明,该方法有效提高了匹配点对的正确率,能够对电气设备红外和可见光图像实现高精度的配准。

    实验图:


    % Example 3, Affine registration
    % Load images
    clc;clear all;
    close all;
    %%%发现只有匹配点对遍布在图像中,匹配效果才会变好
    I11=(imread('qa1.bmp'));%红外图像
    I22=(imread('qa2.bmp'));%可见光图像
    I10=rgb2gray(I11);
    I20=rgb2gray(I22);
    I1=imadjust(I10);
    I2=imadjust(I20);
    I1=im2double(edge_detection_1(I1));
    I2=im2double(edge_detection_1(I2));
    %I1 = im2double(edge(I1,'canny')); 
    %I2 = im2double(edge(I2,'canny')); 
    figure,imshow(I1);
    figure,imshow(I2);
    
    % Get the Key Points
    Options.upright=true;
    Options.tresh=0.0001;
    Ipts1=OpenSurf(I1,Options);  %1*268
    Ipts2=OpenSurf(I2,Options);
    % Put the landmark descriptors in a matrix
    D1 = reshape([Ipts1.descriptor],64,[]);  %64*268
    D2 = reshape([Ipts2.descriptor],64,[]);
    
    % Find the best matches
    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);%用D2的每一列分别去见D1的每一列
        [err(i),cor2(i)]=min(distance);
       
    end
    
    % Sort matches on vector distance适量距离排序
    [err, ind]=sort(err);
    cor1=cor1(ind);
    cor2=cor2(ind);
    
    % Make vectors with the coordinates of the best matches
    Pos1=[[Ipts1(cor1).y]',[Ipts1(cor1).x]'];
    Pos2=[[Ipts2(cor2).y]',[Ipts2(cor2).x]'];
    Pos1_1=Pos1;
    Pos2_1=Pos2;
    Pos1(:,3)=1; Pos2(:,3)=1;Pos1_1(:,3)=1; Pos2_1(:,3)=1;
    Pos1=Pos1(1:20,:);
    Pos2=Pos2(1:20,:);
    Pos11=zeros(size(Pos1));
    Pos22=zeros(size(Pos2));
    % Calculate affine matrix
    ...
    
    
    
    % Show the result
    figure,
    subplot(2,2,1), imshow(rgb2gray(I11));title('红外图像');
    subplot(2,2,2), imshow(rgb2gray(I22));title('可见光图像');
    subplot(2,2,3), imshow(rgb2gray(uint8(I1_warped)));title('配准后图像');
    subplot(2,2,4),imshow(rgb2gray(0.5*I22+0.5*uint8(I1_warped)));title('融合图像');
    imwrite(rgb2gray(I11),'1.bmp');
    imwrite(rgb2gray(I22),'2.bmp');
    imwrite(rgb2gray(uint8(I1_warped)),'3.bmp');
    imwrite((0.5*I20+0.5*rgb2gray(uint8(I1_warped))),'4.bmp');
    
    



     

    2016-03-11 版

    研究红外和可见光图像配准一段时间了,最近才用MATLAB仿真好,先上效果图,后边有空了介绍方法,并上传详细代码。

    展开全文
  • 本文对基于互信息的图像配准方法进行研究。主要工作有: (1)详细研究了互信息的基本理论和互信息配准方法的基本原理,并在matlab上对两幅图像进行配准仿真,通过得出的结果分析了此算法的性能。 (2)针对最近邻...
  • 图像配准技术及MATLAB实现

    热门讨论 2012-03-19 11:44:34
    陈显毅书中代码,图像配准技术及MATLAB实现 包括遗传算法,powell算法,空间变换,配准实例
  • 医学图像配准

    医学图像配准

    链接: https://pan.baidu.com/s/19xrZg_K4JLF-nq-Iq8vY8A 提取码: 5ykr

    包含的医学图像配准算法:

    1. 一般的刚性变换
    2. 非刚性变换:B样条弹性配准
    3. 非刚性变换: 多模态非刚性图像配准算法:非刚性二维和三维图像配准与DEMON(流体)算法,扩展模式转换。

    以下是B样条弹性配准源代码(matlab实现):
    先解压此文件
    在这里插入图片描述
    后直接修改以下三个文件(每个文件分别是一种模式)中的图片位置即可
    在这里插入图片描述

    % Example using lsqnonlin optimizer and registration error image 
    % instead of value.
    
    % clean
    clear all; close all; clc;
    
    % Read two greyscale images of Lena
    I1=im2double(imread('test1.png')); 
    I2=im2double(imread('test3.png'));
    
    % b-spline grid spacing in x and y direction
    Spacing=[32 32];
    
    % Type of registration error used see registration_error.m
    type='d';
    
    % Make the Initial b-spline registration grid
    [O_trans]=make_init_grid(Spacing,size(I1));
    
    % Convert all values tot type double
    I1=double(I1); I2=double(I2); O_trans=double(O_trans); 
    
    % Smooth both images for faster registration
    I1s=imfilter(I1,fspecial('gaussian',[20 20],5));
    I2s=imfilter(I2,fspecial('gaussian',[20 20],5));
    
    % Optimizer parameters
    optim=optimset('Display','iter','MaxIter',40);
    
    % Reshape O_trans from a matrix to a vector.
    sizes=size(O_trans); O_trans=O_trans(:);
    
    % Start the b-spline nonrigid registration optimizer
    O_trans = lsqnonlin(@(x)bspline_registration_image(x,sizes,Spacing,I1s,I2s,type),O_trans,[],[],optim);
    
    % Reshape O_trans from a vector to a matrix
    O_trans=reshape(O_trans,sizes);
    
    % Transform the input image with the found optimal grid.
    Icor=bspline_transform(O_trans,I1,Spacing); 
    
    % Make a (transformed) grid image
    Igrid=make_grid_image(Spacing,size(I1));
    Igrid=bspline_transform(O_trans,Igrid,Spacing); 
    
    % Show the registration results
    figure,
    subplot(2,2,1), imshow(I1); title('input image 1');
    subplot(2,2,2), imshow(I2); title('input image 2');
    subplot(2,2,3), imshow(Icor); title('transformed image 1');
    subplot(2,2,4), imshow(Igrid); title('grid');
    

    实验结果:
    在这里插入图片描述

    展开全文
  • 遥感图像配准matlab

    2019-11-20 10:43:52
    首先进行Harris角点特征提取,而后利用NCC算法进行粗匹配,剔除误匹配和不匹配向量,基于灰度相关系数,计算配准误差, 从而得到配准后叠加...能够实现可见光区图像配准,可实现时间间隔不是很久的多时相遥感影像配准
  • hslogic算法仿真-医学图像配准MATLAB仿真程序,可以实现较好的仿真效果
  • 这是本人编写的在matlab平台上实现的基于微粒群算法图像配准
  • 我现在正在做一个比较简单的图像处理应用,目的是对一个环境做变化检测。整体流程是对同一个地点进行多次拍照,先配准...效果还不错,现在打算在vs2013+opencv2.4.9上实现,不知道有什么比较好的算法推荐呢?谢谢!
  • Rueckert等人提出的b样条配准算法的(增强的)实现。“使用自由形状基于仿射和b样条网格的两个二维彩色/灰度图像或三维体或点数据的配准和数据拟合。 变形的非刚性配准:在乳房MR图像中的应用”。包括Rueckert的平滑...
  • 本文以MATLAB软件作为开发工具,设计了一种基于SIFT算法的遥感图像配准系统。本系统能够对来自于不同传感器、不同分辨率、不同时段的遥感图像进行配准,实现对遥感图像的甄别、比对,有效建立遥感图像的统一坐标系,使...
  • 对icp算法实现matlab程序,该方法对原有的ICP算法进行了改进,算法较为简单
  • 指南 本篇主要内容是如何用代码实现GF1WFV遥感数据配准,同时也适用于其他类型的图像校正,拼接。...配准算法流程 1.计算SURF特征 2.提取特征描述子 3.匹配特征描述子 4.有效特征描述子在原图中的对应位...
    指南
    1. 本篇主要内容是如何用代码实现GF1WFV遥感数据配准,同时也适用于其他类型的图像校正,拼接。
    2. 本篇原理是surf自动特征提取,这个算法是SIFT的一种改进
    3. 配准效果用标准误差RMSE进行定量化度量
    4. 展示如何批量配准图像
    5. 完整代码及部分GF1WFV数据下载见github
    配准算法流程
    1.计算SURF特征
    2.提取特征描述子
    3.匹配特征描述子
    4.有效特征描述子在原图中的对应位置
    5.计算变换矩阵参数
    6.配准
    读取图像
    data1=imread(file1);%参考图像
    data2=imread(file2);%待配准的图像

    配准前

    1. 计算SURF特征

    计算图像的SURF特征,并返回SURF点对象

    ptsOriginal  = detectSURFFeatures(original,'MetricThreshold',MetricThreshold);
    ptsDistorted = detectSURFFeatures(distorted,'MetricThreshold',MetricThreshold);
    

    输入参数:
    - I–大小为MxN的灰度图像矩阵
    - ‘MetricThreshold’– 最强特征阈值默认值1000,减小阈值得到更多的斑点特征(blob feature)

    • ‘NumOctaves’–层数(octaves),默认值为3,要求至少大于等于1。层数增加,能够发现更大的斑点。不同尺度图像,适合的层数不同。例如50X50的图像,层数不必过高小于等于2即可。

    • ‘NumScaleLevels’–每一层需要计算的不同尺度数目。默认值4,此参数值越大,检测斑点特征越多。

    • ‘ROI’–感兴趣的矩形区域,默认值[1,1,size(I,2),size(I,1)]。输入是一个向量,表示从左上角的点(x,y)开始,大小为(width,height)的矩阵。
    2. 提取特征描述子

    提取参考图像和待配准图像的特征向量也被称为描述(descriptors),以及他们对应的坐标

    [featuresOriginal,   validPtsOriginal]  = extractFeatures(original,ptsOriginal );
    [featuresDistorted, validPtsDistorted]  = extractFeatures(distorted,ptsDistorted );

    输出参数:

    validPtsOriginal–输出特征描述子featuresOriginal中,删除一些在图像区域外,太靠近边界的匹配特征后剩余的有效特征。

    3. 匹配特征描述子

    返回两个特征集中最类似特征的对应位置索引,返回矩阵大小Px2。P的大小和特征个数一致

    indexPairs = matchFeatures(featuresOriginal, featuresDistorted);
    4. 有效特征描述子在原图中的对应位置
    matchedOriginal  = validPtsOriginal(indexPairs(:,1));
    matchedDistorted = validPtsDistorted(indexPairs(:,2));
    showMatchedFeatures(original(:,:,3:-1:1),distorted(:,:,3:-1:1),matchedOriginal,matchedDistorted);
    title('Putatively matched points (including outliers)');

    可以看到,此时得到的匹配特征描述子包含一些错误的点

    5. 计算变换矩阵
    [tform, inlierDistorted, inlierOriginal] = estimateGeometricTransform(matchedDistorted, matchedOriginal, 'affine');

    输入参数:

    • ‘affine’是变换的类型,包括3种’similarity’,’affine’,’projective’
      输出参数:

    • tform是一个对象,tform.T是将待配准图像和参考图像配准的变换矩阵

    • inlierDistorted 是matchedDistorted中剔除了异常点后的匹配点。如下图所示
    6.配准
    outputView = imref2d(size(original));
    recovered  = imwarp(ditorted,tform,'linear','OutputView',outputView);

    输入参数:
    - ditorted 待配准的图像
    - tform 变换矩阵对象
    - ‘linear’变换后的插值方法。包括’linear’,’nearest’,’cubic’
    输出参数:
    -recovered 配准后的图像

    展示配准后的结果:

    figure, imshowpair(original(:,:,1:3),recovered(:,:,1:3),'ColorChannels','red-cyan')
    title([file2(1:8) ,'  Adjusted in linear']);

    6.批量配准图像
    file1='20160519cut.jp2';%参考图像名称
    path='F:\多时相\高分1宽幅';
    list=dir(fullfile([path '\*.jp2']));%文件下所有的图像名称
    filenum=length(list);
    j=1;
    for i=1:filenum
        file2=list(i).name;
    [original,recovered]=register([path,'\',file1],[path,'\',file2]);
    figure, imshowpair(original(:,:,1:3),recovered(:,:,1:3),'ColorChannels','red-cyan')
    title([file2(1:8) ,'  Adjusted in linear']);
    imwrite(recovered,[path,'\配准\',file2(1:8),'.png'],'bitdepth',16);
    end
    展开全文
  • 采用模板匹配法对同源传感器视频采集到的车辆图像进行匹配,对所配准图像采用加权平均的融合算法进行融合,可以获得对同一场景、同一目标更准确、全面、可靠的图像描述,从而实现对车辆图像特征的精确提取。...
  • MATLAB实现基于互相关的亚像素级图像匹配/配准源代码 程序通过用户指定一个基准点,实现二维图像配准。通过使用选择的DFT算法不断减少计算量。
  • matlab开发-ECImageAlignment算法图像注册。这是一个用matlab实现的ECC图像对齐(图像配准算法
  • 点击上方蓝字关注我们微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识前言概述之前写了两篇文章分别是图像单应性矩阵变换与图像拼接,图像拼接中使用单应性矩阵实现图像特征对齐,从而为图像拼接特别是...
  • 为此,针对大多数图像配准算法存在精度低、抗噪声能力差等缺点,提出一种基于纹理特征的图像自动配准方法。首先用Canny边缘检测算子提取裂缝纹理图像,然后用Photoshop图层工具,通过对待配准帧关于参考帧作变换,...
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像上的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • 不仅涉及数字图像的文件读/写、显示、类型转换、频域变换、几何变换、图像增强、图像去噪、图像分割、边缘检测、特征提取、图像配准、图像拼接、图像压缩、图形用户界面设计等技术,而且详细讲述可视密码共享、数字...
  • 不仅涉及数字图像的文件读/写、显示、类型转换、频域变换、几何变换、图像增强、图像去噪、图像分割、边缘检测、特征提取、图像配准、图像拼接、图像压缩、图形用户界面设计等技术,而且详细讲述可视密码共享、数字...
  • 利用傅里叶变换和反傅里叶变换,实现两个图像之间相位相关性比较,从而得到平移量,用于图像防抖和简单的配准算法matlab实现
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像上的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • 图像配准多采用基于图像特征点的方法,这种方法易于用计算机处理并且容易实现人机交互,其重点在于如何提取图像上的有效特征点。对图像拼接技术的目的、意义、国内外研究现状、发展方向以及本课题研究的目的和意义...
  • 使用MATLAB实现的归一化互信算法,可以用在图像配准和融合等方面
  •  讨论和实现数字图像处理领域主流的算法MATLAB函数,包括灰度变换、空间滤波、模糊图像处理、频域处理、图像复原、几何变换和图像配准、彩色图像处理、小波、图像和视频压缩、形态学、图像分割、图像表示和描述...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

matlab图像配准算法实现

matlab 订阅