图像拼接算法及实现(二)_第1页
图像拼接算法及实现(二)_第2页
图像拼接算法及实现(二)_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图3-1图像融合步骤示意图(2)分割目标和选择配准特征点:在二维或三维情况下,对目标物或兴趣区进行分割。选取的特点应是同一物理标记在两个图像上的对应点,该物理标记可以是人工标记,也可以是人体解剖特征点;(3)利用特征点进行图像配准:可视作两个数据集间的线性或非线性变换,使变换后的两个数据集的误差达到某种准则的最小值;(4)融合图像创建:配准后的两种模式的图像在同一坐标系下将各自的有用信息融合表达成二维或三维图像;(5)参数提取:从融合图像中提取和测量特征参数,定性、定量分析4.6本章小结本章主要介绍了图像融合的概念,方法以及步骤。第五章图像拼接matlab实现5.1Matlab简介MATLAB的名称源自MatrixLaboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。Matlab语言有如下特点:

1.编程效率高它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比Basic、Fortran和C等语言更加接近我们书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。Matlab编写简单,所以编程效率高,易学易懂。

2.用户使用方便Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在它们之间作瀑布型的循环。3.扩充能力强高版本的Matlab语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。4.语句简单,内涵丰富Mat1ab语言中最基本最重要的成分是函数,其一般形式为[a,6,c……]=fun(d,e,f,……),即一个函数由函数名,输入变量d,e,f,……和输出变量a,b,c……组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性。。

5.高效方便的矩阵和数组运算Matlab语言象Basic、Fortran和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“·”就可用于数组间的运算,另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。6.方便的绘图功能Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。总之,Matlab语言的设计思想可以说代表了当前计算机高级语言的发展方向。我们相信,在不断使用中,读者会发现它的巨大潜力。因此本文采用matlab来实现本文的算法。5.2各算法程序5.2.1一般方法图像融合是通过一个数学模型把来自不同传感器的多幅图像综合成一幅满足特定应用需求的图像的过程,从而可以有效地把不同图像传感器的优点结合起来,提高对图像信息分析和提取的能力。简单的图像融合方法不对参加融合的源图像进行任何变换和分解,而是直接对源图像中的各对应像素分别进行选择、平均或加权平均、多元回归或其它数学运算等处理后,最终合成一幅融合图像。对于图像融合的对象,可以分为两大类,即多光谱图像(通常为RGB彩色图像)与灰度图像之间的融合,以及灰度图像之间的融合。灰度图像之间的融合,在大体上可分为三大类。一类是简单融合方法,包括将空间对准的两幅图像直接求加权平均值。另一类方法是基于金字塔形分解和重建算法的融合方法,主要包括梯度金字塔法、对比度和比率金字塔法以及拉普拉斯金字塔法等,它们首先构造输入图像的金字塔,再按一定的特征选择方法取值形成融合金字塔,通过对金字塔实施逆变换进行图像重建,最终生成融合图像,它们的融合效果要远优于第一类方法,然而它也有很多不尽如人意的地方。还有一类方法就是近几年兴起的基于小波变换的图像融合方法,它通常采用多分辨分析和Mallat快速算法,通过在各层的特征域上进行有针对性的融合,比较容易提取原始图像的结构信息和细节信息,所以融合效果要好于基于金字塔形变换的图像融合法。这是因为小波变换更为紧凑;小波表达式提供了方向信息,而金字塔表达式未将空间方向选择性引入分解过程;由于可以选择正交小波核,因此不同分辨率包含的信息是唯一的,而金字塔分解在两个不同的尺度之间含有冗余,另外金字塔不同级的数据相关,很难知道两级之间的相似性是由于冗余还是图像本身的性质引起的;金字塔的重构过程可能具有不稳定性,特别是两幅图像存在明显差异区域时,融合图像会出现斑块,而小波变换图像融合则没有类似的问题。此外,小波变换具functionY=fuse_pca(M1,M2)%Y=fuse_pca(M1,M2)imagefusionwithPCAmethod%%

M1-inputimage#1%

M2-inputimage#2%%

Y-fusedimage%

(OliverRockinger16.08.99)%checkinputs[z1s1]=size(M1);[z2s2]=size(M2);if(z1~=z2)|(s1~=s2)error('Inputimagesarenotofsamesize');end;%compute,select&normalizeeigenvalues[V,D]=eig(cov([M1(:)M2(:)]));if(D(1,1)>D(2,2))a=V(:,1)./sum(V(:,1));elsea=V(:,2)./sum(V(:,2));end;%andfuseY=a(1)*M1+a(2)*M2;5.2.3金字塔(Pyramid)算法程序金字塔图像融合法:用金字塔在空间上表示图像是一种简单方便的方法。概括地说金字塔图像融合法就是将参加融合的每幅源图像作金字塔表示,将所有图像的金字塔表示在各相应层上以一定的融合规则融合,可得到合成的金字塔。将合成的金字塔,用金字塔生成的逆过程重构图像,则可得到融合图像。金字塔可分为:Laplacian金字塔、Gaussian金字塔、梯度金字塔、数学形态金字塔等。基于FSDPyramid的图像融合算法程序:functionY=fuse_fsd(M1,M2,zt,ap,mp)%Y=fuse_fsd(M1,M2,zt,ap,mp)imagefusionwithfsdpyramid%%

M1-inputimageA%

M2-inputimageB%

zt-maximumdecompositionlevel%

ap-coefficientselectionhighpass(seeselc.m)%

mp-coefficientselectionbaseimage(seeselb.m)%%

Y-fusedimage%

(OliverRockinger16.08.99)%checkinputs[z1s1]=size(M1);[z2s2]=size(M2);if(z1~=z2)|(s1~=s2)error('Inputimagesarenotofsamesize');end;%definefilterw=[14641]/16;%cellsforselectedimagesE=cell(1,zt);%loopoverdecompositiondepth->analysisfori1=1:zt%calculateandstoreactualimagesize[zs]=size(M1);zl(i1)=z;sl(i1)=s;%checkifimageexpansionnecessaryif(floor(z/2)~=z/2),ew(1)=1;else,ew(1)=0;end;if(floor(s/2)~=s/2),ew(2)=1;else,ew(2)=0;end;%performexpansionifnecessaryif(any(ew))M1=adb(M1,ew);M2=adb(M2,ew);end;%performfilteringG1=conv2(conv2(es2(M1,2),w,'valid'),w','valid');G2=conv2(conv2(es2(M2,2),w,'valid'),w','valid');%selectcoefficientsandstorethemE(i1)={selc(M1-G1,M2-G2,ap)};%decimateM1=dec2(G1);M2=dec2(G2);end;%selectbasecoefficientsoflastdecompostionstageM1=selb(M1,M2,mp);%loopoverdecompositiondepth->synthesisfori1=zt:-1:1%undecimateandinterpolateM1T=conv2(conv2(es2(undec2(M1),2),2*w,'valid'),2*w','valid');%addcoefficientsM1=M1T+E{i1};%selectvalidimageregionM1

=M1(1:zl(i1),1:sl(i1));end;%copyimageY=M1;5.2.4小波变换(DWT)算法程序在众多的图像融合技术中,基于小波变换的图像融合方法已成为现今研究的一个热点。这类算法主要是利用人眼对局部对比度的变化比较敏感这一事实,根据一定的融合规则,在多幅原图像中选择出最显著的特征,例如边缘、线段等,并将这些特征保留在最终的合成图像中。在一幅图像的小波变换中,绝对值较大的小波系数对应于边缘这些较为显著的特征,所以大部分基于小波变换的图像融合算法主要研究如何选择合成图像中的小波系数,也就是三个方向上的高频系数,从而达到保留图像边缘的目的。虽然小波系数(高频系数)的选择对于保留图像的边缘等特征具有非常主要的作用,但尺度系数(低频系数)决定了图像的轮廓,正确地选择尺度系数对提高合成图像的视觉效果具有举足轻重的作用。基于SIDWT(ShiftInvarianceDiscreteWaveletTransform)小波变换的算法程序:functionY=fuse_sih(M1,M2,zt,ap,mp)%Y=fuse_sih(M1,M2,zt,ap,mp)imagefusionwithSIDWT,WaveletisHaar%%

M1-inputimageA%

M2-inputimageB%

zt-maximumdecompositionlevel%

ap-coefficientselectionhighpass(seeselc.m)%

mp-coefficientselectionbaseimage(seeselb.m)%%

Y-fusedimage%

(OliverRockinger16.08.99)%checkinputs[z1s1]=size(M1);[z2s2]=size(M2);if(z1~=z2)|(s1~=s2)error('Inputimagesarenotofsamesize');end;%cellsforselectedimagesE=cell(3,zt);%loopoverdecompositiondepth->analysisfori1=1:zt%calculateandstoreactualimagesize[zs]=size(M1);zl(i1)=z;sl(i1)=s;%defineactualfilters(insertingzerosbetweencoefficients)h1=[zeros(1,floor(2^(i1-2))),0.5,zeros(1,floor(2^(i1-1)-1)),0.5,zeros(1,max([floor(2^(i1-2)),1]))];g1=[zeros(1,floor(2^(i1-2))),0.5,zeros(1,floor(2^(i1-1)-1)),-0.5,zeros(1,max([floor(2^(i1-2)),1]))];fh=floor(length(h1)/2);%imageAZ1=conv2(es(M1,fh,1),g1,'valid');A1=conv2(es(Z1,fh,2),g1','valid');A2=conv2(es(Z1,fh,2),h1','valid');Z1=conv2(es(M1,fh,1),h1,'valid');A3=conv2(es(Z1,fh,2),g1','valid');A4=conv2(es(Z1,fh,2),h1','valid');%imageBZ1=conv2(es(M2,fh,1),g1,'valid');B1=conv2(es(Z1,fh,2),g1','valid');B2=conv2(es(Z1,fh,2),h1','valid');Z1=conv2(es(M2,fh,1),h1,'valid');B3=conv2(es(Z1,fh,2),g1','valid');B4=conv2(es(Z1,fh,2),h1','valid');%selectcoefficientsandstorethemE(1,i1)={selc(A1,B1,ap)};E(2,i1)={selc(A2,B2,ap)};E(3,i1)={selc(A3,B3,ap)};%copyinputimagefornextdecompositionstageM1=A4;M2=B4;end;%selectbasecoefficientsoflastdecompostionstageA4=selb(A4,B4,mp);%loopoverdecompositiondepth->synthesisfori1=zt:-1:1%defineactualfilters(insertingzerosbetweencoefficients)h2=fliplr([zeros(1,floor(2^(i1-2))),0.5,zeros(1,floor(2^(i1-1)-1)),0.5,zeros(1,max([floor(2^(i1-2)),1]))]);g2=fliplr([zeros(1,floor(2^(i1-2))),0.5,zeros(1,floor(2^(i1-1)-1)),-0.5,zeros(1,max([floor(2^(i1-2)),1]))]);fh=floor(length(h2)/2);%filter(rows)A4=conv2(es(A4,fh,2),h2','valid');A3=conv2(es(E{3,i1},fh,2),g2','valid');A2=conv2(es(E{2,i1},fh,2),h2','valid');A1=conv2(es(E{1,i1},fh,2),g2','valid');%filter(columns)A4=conv2(es(A4+A3,fh,1),h2,'valid');A2=conv2(es(A2+A1,fh,1),g2,'valid');%addimagesA4=A4+A2;end;%copyimageY=A4;5.3实验结果下面将本文的算法用于多聚焦图像的融合。多聚焦图像指的是对相同的场景用不同的焦距进行拍摄,得到镜头聚焦目标不同的多个图像。经过图像融合技术后,就可以得到一个所有目标都聚焦清晰的图像。图5-1中左边的目标较为清晰,图5-2中右边的目标较为清晰。图5-1聚焦在左边的图像图5-2聚焦在右边的图像我们分别利用基于PCA的算法、金字塔图像融合法和小波变换法的算法程序得到的的融合图像结果,如图5-3、图5-4、图5-5所示图5-3基于PCA算法的融合图像图5-4基于金字塔图像融合算法的融合图像图5-5基于SIDWT小波变换的融合图像从实验结果可以看出,三种方案都可以得到较满意的视觉效果,消除了原图像的聚焦差异,提高了图像的清晰度,在合成图像中左、右两边的目标都很清晰。但通过比较分析,我们可以看出基于小波变换的融合图像(图5-5)最为清晰,所表现的图像细节效果最好,重影现象消除得最干净。图5-3的清晰度不够,而图5-4的细节表现力较弱,只有图5-5的边缘最清晰,重影消除地最干净,细节得到了最好地保留。第六章总结与展望6.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论