基于MATLAB的图像融合平台系统设计.docx
- 文档编号:14770032
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:24
- 大小:111.94KB
基于MATLAB的图像融合平台系统设计.docx
《基于MATLAB的图像融合平台系统设计.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的图像融合平台系统设计.docx(24页珍藏版)》请在冰点文库上搜索。
基于MATLAB的图像融合平台系统设计
摘要
数字图像融合是以图像为主要研究内容的数据融合技术,是把多个不同模式的图像传感器获得的同一场景的多幅图像或同一传感器在不同时刻获得的同一场景的多幅图像合成为一幅图像的过程。
本文主要利用MATLAB的GUIDE编辑器,实现基于MATLAB的图像融合平台系统设计。
使其具有以下功能:
1.用户登录界面;2.用户可自行选择检测过程、方法;3.用户可通过选择按钮多次添加、选择图片进行融合;4.用户可以通过功能按钮键退出该界面;5.报错功能,包括登录账号、密码错误等。
本文利用MATLAB的GUIDE控件,制作出由三个图形用户界面构成的图像融合平台系统,通过对各控件编写Callback回调函数,实现平台应有的功能。
关键词:
GUI;MATLAB;图像融合;回调函数
Abstract
Digitalimagefusionbasedonimageasthemainresearchcontentsofthedatafusiontechnology,theimagesensoristoputthedifferentpatternsofthesamesceneorsamesensormanyimagesobtainedatdifferenttimesmoreofthesamesceneimagesynthesisforanimageoftheprocess.Inthispaper,weuseMATLABGUIDEeditor,therealizationofimagefusionbasedonMATLABplatformsystemdesign.Makeithasthefollowingfeatures:
1.Theuserlogininterface;2.Theusercanchoosedetectionprocessandmethod;3.Theusercanchooseimagesbyselectingthebuttonseveraltimesadd,fusion;4.Theusercanthroughthefunctionbuttonkeyexittheinterface;5.Anerrorfunction,includingloginnameandpasswordmistake.
BasedonMATLABGUIcontrols,producedbythethreeimagefusionplatformsystemconsistingofagraphicaluserinterface,withitsCallbackforeachcontrolCallbackfunction,implementationplatformshouldhavethefunctionof.
Keywords:
GUI;MATLAB;Imagefusion;Thecallbackfunction
1绪论
1.1课题开发背景
1.1.1图像融合的定义
数字图像融合(DigitalImageFusion)是以图像为主要研究内容的数据融合技术,是把多个不同模式的图像传感器获得的同一场景的多幅图像或同一传感器在不同时刻获得的同一场景的多幅图像合成为一幅图像的过程。
由于不同模式的图像传感器的成像机理不同,工作电磁波的波长不同,所以不同图像传感器获得的同一场景的多幅图像之间具有信息的冗余性和互补性,经图像融合技术得到的合成图像则可以更全面、更精确地描述所研究的对象。
正是由于这一特点,图像融合技术现已广泛地应用于军事、遥感、计算机视觉、医学图像处理等领域中。
数字图像融合是图像分析的一项重要技术,该技术在数字地图拼接、全景图、虚拟现实等领域有着重要应用。
虽然Photoshop等图像处现软件提供了图像处理功能,可以通过拖放的方式进行图像拼接,但由于完全是手工操作,单调乏味,且精度不高,因此,有必要寻找一种方便可行的图像融合方法。
Matlab具有强大的计算功能和丰富的工具箱函数,例如图像处理和小波工具箱包含了大多数经典算法,并且它提供了一个非常方便快捷的算法研究平台,可让用户把精力集中在算法上而不是编程上,从而能大大提高研究效率。
1.1.2图象融合研究的发展现状和研究热点
在众多的图像融合技术中,基于小波变换的图像融合方法已成为现今研究的一个热点。
这类算法主要是利用人眼对局部对比度的变化比较敏感这一事实,根据一定的融合规则,在多幅原图像中选择出最显著的特征,例如边缘、线段等,并将这些特征保留在最终的合成图像中。
在一幅图像的小波变换中,绝对值较大的小波系数对应于边缘这些较为显著的特征,所以大部分基于小波变换的图像融合算法主要研究如何选择合成图像中的小波系数,也就是三个方向上的高频系数,从而达到保留图像边缘的目的。
虽然小波系数(高频系数)的选择对于保留图像的边缘等特征具有非常主要的作用,但尺度系数(低频系数)决定了图像的轮廓,正确地选择尺度系数对提高合成图像的视觉效果具有举足轻重的作用。
本文给出了一种基于小波变换的图像融合算法,在考虑小波系数选择规则的前提下,还重点研究了尺度系数的选择方案。
小波系数的选择基于绝对值最大的原则,并对选择方案的一致性进行了验证。
所谓的一致性指的是对于空间某像素点,其小波系数的选择方案应和其邻近点一致。
本文设计了三种选择尺度系数的方案,并从理论上和仿真结果上对这三种方案进行了比较,选择出一种最好的方案。
本文给出的算法可用于两幅图像或多幅图像的融合,从仿真结果可看出,这个算法较好地保持了图像的边缘,具有较好的视觉效果。
1.1.3图像融合的应用
图像融合技术在军事、遥感和医学成像等领域有着广泛的应用,和人工智能等的新兴技术。
近年来,图像融合已成为一种十分重要的图像分析与计算机视觉技术。
它在自动目标识别计算机视觉!
遥感、机器人、医学图像处理以及军事应用等领域有着广泛的应用前景。
智能机器人领域:
动作控制"对环境的视觉触觉力矩反馈"立体摄像融合"智能注视控制"自动目标识别和跟踪。
信息融合技术对机器人领域起到了一定的推动作用。
作为信息融合的重要分支-图像融合技术可用于自动目标识别等。
医学影像领域:
计算机辅助手术、3-D表面空间校准。
医学图像融合是医学图像后处理的研究热点主要包括转换&配准和信息提取三个步骤。
它充分利用多模式图像获得互补信息,使临床的诊断和治疗更加准确完善。
制造业领域:
电子线路和部件检查&产品表面测量和检验&材料探伤&生产过程监视&复杂设备诊断。
战场和司法领域:
陆海空目标/事件的检测跟踪和识别&隐蔽武器的探测&战场监视&夜间飞行导航。
在遥感领域中,电磁光谱应用、黑白空中摄影到多光谱主动微波空间成像雷达、基于摄像方法和数字方法的融合技术等。
2MATLAB程序设计
2.1MATLAB的GUI编辑器简介
矩阵实验室(MatrixLaboratory,简称MATLAB)是美国MathWorks公司出品的数学软件,主要包括两大部分:
MATLAB和Simulink,可实现算法开发、工程数值计算和对动态系统进行建模、仿真等功能。
主要应用于金融建模设计与分析、工程计算、图像处理、控制工程、信号处理与通信、信号检测等领域。
MATLAB可以创建图形用户界面(GraphicalUserInterfaces,简称GUI),图形用户界面是指由鼠标、窗口、按键、光标、菜单、图标、对话框和文本框等各种图形对象组成的用户界面。
它可以让用户自由定制与MATLAB的交互方式,而命令窗口不是唯一与MATLAB的交互方式。
图形用户界面是用户和计算机之间进行交流的工具,MATLAB将所有图形用户界面支持的用户控件都集成在这个环境中并提供界面外观、属性、行为响应方式的设置方法。
通过MATLAB的GUIDE编辑器进行开发图形用户界面设计,类似VisualBasic这一类的开发环境,比编程方式简单,并可将几个图形对象加到一个图形界面中,增强可视性。
刚开始建立GUI时,使用GUIDE编辑GUI的速度将会比较快。
用户可以直接在MATLAB的命令窗口中输入guide,或在MATLAB的start菜单选取【MTALAT】>【GUIDE(GUIBuilder)】选项或单击Desktop工具栏上的
按钮,都可以打开MATLAB的GUIDE编辑器来进行界面设计。
>>guide
使用此编辑器能够快速地设计出GUI,并且可以省略繁琐的函数,是以对象为导向的观念,使GUI的设计更加灵活;此外,若通过MATLABCompiler编译为可执行文件或由MATLABRuntimeServer封装文件,就可以在没有MATLAB的环境下运行使用,以发挥最大效用。
在MATLABR2015b中,GUIDE编辑界面如图1所示的“GUIDEQuickStart”对话框,提供了BlankGUI、ModalQuestionDialog、GUIwithAxesandMenu、GUIwithUicontrols4种样板。
图2.1“GUIDEQuickStart”对话框
●BlankGUI样板:
一个空的GUI样板,必须由用户自行加入所需要的对象,双击此选项后,在GUI编辑区内不会有任何的对象存在。
●ModalQuestionDialog样板:
在此编辑器中已经有用户建立的一个问题对话框。
●GUIwithUicontrols样板:
打开已经设计好的一些GUI对象的GUIDE编辑器,而在此编辑器中已经包含了由用户建立的一些具有计算功能的对象。
●GUIwithAxesandMenu样板:
在此编辑器中也已经有一些由用户设计好的GUI对象,而这些对象主要用于计算与输出。
在以上几个样板中,用户一般都是使用BlankGUI来建立GUI对象,选取完后单击ok按钮,即可打开如图2所示的GUI编辑界面。
图2.2GUI编辑界面
2.1.1建立GUIDE对象过程
在MATLAB中打开GUI编辑界面后就可以进行GUI设计了,如图2所示的GUIDE编辑界面中,左方提供了用户可选择的uicontrol对象。
用户只需通过鼠标单击左方任一uicontrol对象后,然后在GUIDE窗口内使用鼠标拖拽对象大小来放置,就可以建立好该对象。
如图3所示,用户用鼠标选取PushButton对象后,直接在GUIDE窗口内拖拽该对象的大小来放置PushButton即可。
EditText、StaticText的建立方式与PushButton的相同。
用户建立完对象后,则在自己已经建立的对象上单击鼠标左键来选取该对象作为当前对象,即可修改各对象的大小,此时对象框的四周会显示四个黑点,即可直接用鼠标拖拽这些黑点来修改对象框的大小;同样可用鼠标选取该对象,再拖拽移动对象即可修改对象的位置;用户可以使用鼠标直接拖拽右下角的黑点来进行修改整个GUI窗口的大小。
图2.3GUI的建立
2.1.2修改GUI对象属性
当建立完对象后,用户就可以开始修改对象的属性了,与前面介绍的方式一样,直接在该GUI对象上双击鼠标即可打开如图4所示的属性检查器,里面包含了该对象所有可设置的属性值与属性名称。
假设必须将图3内的PushButton对象的字形改为粗体字,因此在该属性检查器中单击“FontWeight”右方的
按钮后,选取其中的“bold”选项就可以将字体改为粗体字;另外,如果我们要更改按钮的名称,用户可以通过修改String属性,与修改FontWeight的做法相同,但由于String属性必须是输入显示的名称,因此将原本的属性值PushButton删除后再输入用户所需设计的按钮名称即可。
例如本设计课题中简易计算器的GUI设计的后退按钮Backspace属性设置,如图5所示。
我们发现在GUIDE中设置对象属性是比较方便的,用户仅需了解该属性的用途以及各对象间之间的关系,而不需要完整的去记整个属性的名称,并且可以直接通过交互式的界面来进行各对象属性的修改,这样可以节省很多属性设置的时间,可以很快地建立一个符合我们要求的图形界面。
图2.4属性检查器
图2.5修改PushButton对象属性
2.1.3GUIDE中加入图案
在GUIDE中加入图案,首先要在GUIDE编辑界面中建立一个Axes对象,作为图像显示的坐标轴,使用axes(句柄值)可以用来控制当前的坐标轴。
在MATLAB中,一个完整的图像显示过程必须使用到几个函数,分别为imread(读取图像)、image(显示图像)、imwrite(写入图像),这样我们就可以将特定的图案显示在GUI中,来美化我们的界面(有点类似于VisualBasic内的picture对象的效果)。
本设计课题中用户登录界面设计中显示的沈阳理工大学图像程序代码如下:
h=imread('photo.jpg');
imshow(h);
2.2设计课题的GUI对象简介
下面简要介绍本设计课题使用的GUIDE编辑器中对象的用途与使用方式。
1.PushButton
PushButton为GUI最常使用也是最简单的对象,当用户按下PushButton时,MATLAB就会立即依据其对应的Callback程序来执行操作。
以下为本设计课题登录页面的登录按钮的Callback,其Tag属性为pushbuttonenter,这个按钮主要是用来进行判断账号密码正确与否,其整个对应的Callback程序如下:
z=get(handles.editaccountnumber,'string');
m=get(handles.editcode,'string');
z_h='shenli';
m_m='123456';
n=find(strcmp(z_h,{z}));
if~isempty(n)&&strcmp(m_m,{m})
h=msgbox('Welcome!
');
uiwait(h);
run('two');
close('one');
else
errordlg('账号或密码错误!
');
end
2.StaticText
StaticText不同于EditText,不可以在执行中任意编辑输入值,因此StaticText主要用于制作显示框、状态信息、或其余资料(由String属性指定显示的文字),当然其显示的文字也是可以在执行中通过其他对象的Callback去编辑String属性的。
例如当驱动某一对象的Callback后,会将句柄值为a的StaticText的属性改为“执行中”,该对象的Callback为set(a,’string’,’执行中’)。
3.EditText
EditText主要是用来当做一个输入的接口,以便用户能够输入字符串、字符或数字,因此EditText的属性String即可作为一个有效的沟通媒介。
用户可以直接在EditText的Callback中编写获取该EditText输入值的程序:
get(gcbo,’string’),返回当前EditText输入的值,然后在通过userdata或global的方式,将该值传递到要使用的Callback中,不过变量较多时,会造成管理上的不便,因此习惯上直接在要使用该值的Callback中,编写获取EditText输入值的程序,如hh=findobj(‘tag’,‘abc’);ff=str2mun(get(hh,‘string’));,表示将Tag名称为abc的EditText中的输入值转换为数值后存储到ff变量中,这样就可省去变量传递的麻烦。
此外,若多行输入时必须调整Max与Min的属性值是Max-Min>1,一般习惯将Max设为2。
2.3设计课题的Callback函数简介
在MATLAB中,我们可以对句柄图形对象设置一些响应函数,这些事件的响应函数我们称之为对象的回调函数,不同的对象对应的回调函数不同。
用户可单击【M-fileEditor】按钮
,则系统会自动将已建立的GUI对象存储,随后将产生*.fig(已建立的GUI文件)与*.m(用以编辑对象Callback的M文件),并且GUIDE会自动打开这个M文件,此时就可以开始编辑对象的Callback程序了。
这里编写Callback的方式与GUIDE菜单编辑器的原理一样,可以直接在属性检查器的“Callback”文本框中输入要执行的MATLAB语句,不过此种方式由于文本框宽度的限制,因此输入的Callback语句也将受到限制,当用户的Callback比较短时,可以直接在“Callback”文本框中输入MATLAB语句,但当Callback较长时,将非常不适合,这时候必须通过GUIDE的M文件来编辑Callback了,使用此种做法的“Callback”文本框必须设置为默认的%automatic,当GUIDE存储后,就可以在M文件中编写Callback了,其M文件中会显示类似如下的Callback形式:
functionpushbutton1_Callback(hObject,eventdata,handles)
%hObject是当前对象(Callback)的句柄值;
%eventdata是备用参数,目前没有定义;
%handles是一个结构数组,存放了图形窗口所有对象的句柄值和用户数据。
以上的Callback函数是Tag名称为pushbutton1所对应的函数,其后很多以%为首的语句都是系统自动生成的程序注释语句,可以不必理会,用户直接在其中加入要执行的程序语句即可,则当执行GUI时,若单击Tag名称为pushbutton1所对应的按钮,就会触发执行Callback下所指定的操作。
3图像融合算法
3.1图象融合算法的层次分类
图像融合系统的算法按层次结构划分可分为信号级、像素级、特征级和决策级。
信号级融合:
是指合成一组传感器信号,目的是提供与原始信号形式相同但品质更高的信号。
像素级图像融合:
是指直接对图像中像素点进行信息综合处理的过程像素级图像融合的日的是生成一幅包含更多信息、更清晰的图像像素级图像融合属于较低层次的融合,目前,大部分研究集中在该层次上。
像素层图像融合一般要求原始图像在空间上精确配准,如果图像具有小同分辨率,在融合前需作映射处理。
特征级图像融合:
是指从各个传感器图像中提取特征信息,并将其进行综合分析和处理的过程。
提取的特征信息应是像素信息的充分表示量或充分统计量,典型的特征信息有边缘、形状、轮廓、角、纹理、相似亮度区域、相似景深区域等在进行融合处理时,所关心的主要特征信息的具体形式和内容与多传感器图像融合的应用目的/场合密切相关。
决策级图像融合:
是指对每个图像的特征信息进行分类、识别等处理,形成相应的结果后,进行进一步的融合过程最终的决策结果是全局最优决策。
决策级融合是一种更高层次的信息融合,其结果将为各种控制或决策提供依据。
3.2图像融合规则
图像的融合规则(Fusionrule)是图像融合的核心,融合规则的好坏直接影响融合图像的速度和质量。
Burt提出了基于像素选取的融合规则,在将原图像分解成不同分辨率图像的基础上,选取绝对值最大的像素值(或系数)作为融合后的像素值(或系数)。
这是基于在不同分辨率图像中,具有较大值的像素(或系数)包含更多的图像信息。
Petrovic和Xydeas提出了考虑分解层内各图像(若存在多个图像)及分解层间的相关性的像素选取融合规则。
蒲恬在应用小波变换进行图像融合时,根据人类视觉系统对局部对比度敏感的特性,采用了基于对比度的像素选取融合规则。
3.3图像融合方法
迄今为止,数据融合方法主要是在像元级和特征级上进行的。
常用的融合方法有HIS融合法、KL变换融合法、高通滤波融合法、小波变换融合法、金字塔变换融合法、样条变换融合法等。
下面简要介绍其中的几种方法。
1.HIS融合法
HIS融合法在多传感器影象像元融合方面应用较广,例如:
一低分辨率三波段图象与一高分辨率单波段图象进行 融合处理。
这种方法将三个波段的低分辨率的数据通过HIS变换转换到HIS空间,同时将单波段高分辨率图象进行对比度拉伸以使其灰度的均值与方差和HIS空间中亮度分量图象一致,然后将拉伸过的高分辨率图象作为新的亮度分量代入HIS反变换到原始空间中。
这样获得的高分辨率彩色图象既具有较高空间分辨率,同时又具有与影象相同的色调和饱和度,有利于目视解译和计算机识别。
2.KL变换融合法
KL变换融合法又称为主成分分析法。
与HIS变换法类似,它将低分辨率的图象(三个波段或更多)作为输入分量进行主成分分析,而将高分辨率图象拉伸使其具有于第一主成分相同的均值和方差,然后用拉伸后的高分辨率影象代替主成分变换的第一分量进行逆变换。
高空间分辨率数据与高光谱分辨率数据通过融合得到的新的数据包含了源图象的高分辨率和高光谱分辨率特征,保留了原图象的高频信息。
这样,融合图象上目标细部特征更加清晰,光谱信息更加丰富。
3.高通滤波融合法
高通滤波融合法将高分辨率图象中的边缘信息提取出来,加入到低分辨率高光谱图象中。
首先,通过高通滤波器提取高分辨率图象中的高频分量,然后将高通滤波结果加入到高光谱分辨率的图象中,形成高频特征信息突出的融合影象。
4.小波变换融合法
利用离散的小波变换,将N幅待融合的图象的每一幅分解成M幅子图象,然后在每一级上对来自N幅待融合图象的M幅子图象进行融合,得到该级的融合图象。
在得到所有M级的融合图象后,实施逆变换得到融合结果。
3.4图像融合步骤
目前国内外己有大量图像融合技术的研究报道,不论应用何种技术方法,必须遵守的基本原则是两张或多张图像上对应的每一点都应对位准确。
由于研究对象、目的不同,图像融合方法亦可多种多样,其主要步骤归纳如下:
1.预处理:
对获取的两种图像数据进行去噪、增强等处理,统一数据格式、图像大小和分辨率。
对序列断层图像作三维重建和显示,根据目标特点建立数学模型;
图3.1图像融合步骤示意图
2.分割目标和选择配准特征点:
在二维或三维情况下,对目标物或兴趣区进行分割。
选取的特点应是同一物理标记在两个图像上的对应点,该物理标记可以是人工标记,也可以是人体解剖特征点;
3.利用特征点进行图像配准:
可视作两个数据集间的线性或非线性变换,使变换后的两个数据集的误差达到某种准则的最小值;
4.融合图像创建:
配准后的两种模式的图像在同一坐标系下将各自的有用信息融合表达成二维或三维图像;
5.参数提取:
从融合图像中提取和测量特征参数,定性、定量分析。
4设计课题界面设计、调试及程序
4.1设计课题界面设计及调试
4.1.1用户登录界面设计
首先用MATLABGUIDE编辑器,绘制一个坐标轴、三个静态文本框、两个可编辑文本框、两个按钮、一个按钮组以及4个单选按钮。
调整好各控件的大小、颜色,其布局如图4.1所示,然后双击各个控件修改其属性,单击激活按钮
,生成如图4.2所示的界面,在M文件中编写各控件的Callback程序,最后调试运行。
图4.1用户登录界面布局图
图4.2用户登录界面
4.1.2用户登录界面调试
系统默认设置账号密码分别为,账号:
shenli,密码:
123456
1.输入正确密码,输入如图4.3所示,显示如图4.4所示
图4.3用户登录界面输入
图4.4用户登录界面输入正确显示
然后点击确定按钮跳转至菜单界面如图4.5
图4.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 图像 融合 平台 系统 设计