基于MATLAB编写的数字图像预处理系统(共9页).doc
精选优质文档-倾情为你奉上基于MATLAB的数字图像预处理系统 专业:通信工程 指导教师:杨保华摘 要:本文基于MATLAB的数字图像处理环境,设计并实现了一个图像处理系统。本系统不仅可以打开、处理、保存、关闭大多数主流图像文件格式,同时系统功能也包括图像处理技术的各个方面,涵盖了图像处理领域的大部分算法,包括图像增强、图像变换、图像的边缘检测、图像的形态学变换以及图像的分割等。论文论述了该系统的设计及实现的全过程,最后通过实例对各个算法进行了具体说明。同时设计了友好的图形用户界面,方便用户观察处理结果,更好的理解算法。关键词:图像预处理;图形用户界面;图像增强;图像变换;MATLABAbstract:This paper mainly proposed a digital image processing system design and implement based on the MATLAB. This software system not only able to open, process, storage, close many different format image files, most mainstream image file format, but also the system function includes all aspects of the image processing technology. It presents a wide range of classical algorithms processing areas of most of the algorithm, including image enhancement, image transformation, image edge detection, and the image of the morphological transform and image segmentation, etc. This paper mainly discussed the design and realization of the algorithms above. At the last with some examples explain the algorithm. At the same time design a friendly graphical user interface, the user can understand and learn the knowledge of image processing systemic in a short time.keywords:Image preprocessing; Graphical user interface; Image enhancement; Image transform; MATLAB 1.前言1.1课题研究目的与意义图像是人类获取信息、表达消息和传递信息的一个重要手段,研究表明,在人类接受的信息中,图像等视觉信息所占的比重为78%85%1。所谓“百闻不如一见”、“一图值千字”都充分说明了这一事实。同时,随着计算机技术及网络技术的迅速发展,几乎所有的信息都可以以数字的形式呈现在人们眼前。因此,学习和研究数字图像处理技术是时代的迫切要求。获取图像信息非常重要,但目的不仅仅是为了获得图像,图像信息处理在某种意义上讲,比获得图像更为重要,而且图像处理技术涉及面广、实用性强,内容多,尤其是在当今科学技术迅速发展的时代,对图像信息处理提出了更高的要求,以便更加快速、准确,可靠地获得有用信息2。 2. 数字图像处理技术及MATLAB软件简介2.1 数字图像处理技术简介 图像处理技术基本可以分成两大类:模拟图像处理(Analog Image Processing)和数字图像处理(Digital Image Processing)。数字图像处理是指将图像信号转换成数字信号并利用计算机进行处理的过程。数字图像处理技术主要包括如下内容:几何处理(Geometrical Processing)、算术处理(Arithmetic Processing)、图像增强(Image Enhancement)、图像复原(Image Restoration)、图像重建(Image Reconstruction)、图像编码(Image Encoding)、图像识别(Image Recognition)、图像理解(Image Understanding)。数字图像处理技术的发展涉及计算机科学、数学、物理学以及生物学等学科,因此数理及相关的边缘学科对图像处理科学的发展有越来越大的影响3。2.2 MATLAB软件简介MATLAB语言是由美国Math works公司推出的计算机软件,其全称是Matrix Laboratory,亦即矩阵实验室,是国际公认的最优秀的科学计算与数学应用软件之一。其内容设计矩阵代数、微积分、应用数学、有限元分析、科学计算、信号与系统、神经网络、小波分析及其应用、数字图像处理、计算机图形学、电子线路等方面。MATLAB的特点是语法结构简单,数值计算高效,图形功能完备,特别收到以完成数据处理与图形图像生成为主要目的科研人员的青睐4。3.系统的总体设计3.1 系统的特点(1) 可移植性、可扩展性强系统内容丰富,可以涵盖图像处理领域的几乎所有内容,而且MATLAB图像工具箱提供的函数大多是M文件,我们可以查看这些文件的代码并进行改进,也可以把自己编写的代码加入其中,来扩充图像处理的功能。(2) 界面友好,操作简单方便 界面采用全中文方式的菜单和按钮方式,凡是需要确定参数的算法都有设置参数的对话框,用户可以方便的输入不同的参数,便于比较不同参数条件下的图像处理效果5。3.2 系统的总框架设计主整个系统主要由以下6个大模块及其子模块组成,其中子模块又可以再分,为了使框架图清晰明了,这里的子模块再分就不在这里描述了,在第四章具体的设计中会有详细的描述。图3.1为系统的总体框架图。图3.1 系统总框架模拟图3.3 设计原则本系统的程序设计采用MATLAB编程语言来实现。利用MATLAB的图形用户界面(GUI)来设计程序运行的界面。整个系统由若干个运行界面和相应的M函数文件所组成,由一个主文件将它们联成一个整体,最终形成处理系统。在程序设计中,对各处理功能的M文件,其共同之处有以下几个方面:(1) 使用菜单实现各功能窗口的转换,起导航作用。对菜单的编程主要是调用系统中的其它M函数文件;(2) 可调用的图像文件格式丰富,除了常用的JPG、GIF外,还包括BMP、PNG、JPEG等;(3) 文本框主要用于接收用户输入的数据。程序是先从文本框中接收数据,然后对接收的数据进行处理的; (4) 命令按钮是执行运算操作的最主要控件,处理程序主要是放在其相应的M函数 内部。实现上编写程序最主要是对命令按钮进行编程。 3.4 GUIDE开发环境的介绍图形用户界面(Graphical User Interfaces)在MATLAB程序开发中起着举足轻重的作用。而本系统正是在GUI系统中创建了所以下面将介绍如何利用GUI进行各界面的设计。GUIDE实际上是一套MATLAB工具集,它由五个部分组成:属性编辑器(property editor)、控制面板(control panel)、回调函数(callback function)、调整工具(adjust tools)和菜单编辑器(menu edit) 10。如图3.2所示6。图3.2 GUIDE环境3.5 GUI设计原则一个好的界面应该遵循以下三个原则:简单性(Simplicity)、一致性(Consistency)、熟悉性(Familiarity)。同时另一方面介绍设计过程中也应遵循的步骤。首先,进行需求分析,其次,完成各个分模块的设计,包括怎么样放置,采用什么样的操作方法;最后,测试相关软件代码,完成整体设计7。设计流程如图3.3所示。图3.3 设计流程图3.6 设计的一般步骤系统的各种处理功能的实现基本上是四个过程:(1) 打开原始图像,并实现其在坐标轴框1中显现;(2) 通过对命令执行按钮、菜单的点击接收用户输入的参数,进行程序操作;(3) 把接收的参数带入后台进行处理,通过调用回调函数进行各种功能处理,从而实现图像的各种功能;(4) 通过后台处理后将经过处理后的结果显示到界面上的坐标轴框2中显现。4.图像处理系统的详细设计及其功能实现4.1 用户界面设计1系统界面简介 本界面设计的总体思路是通过一个主窗口和其它的子窗口关联。在主窗口中,建立各种图像处理的菜单,通过单击菜单去调用一个新的子窗口,在子窗口中实现相应的操作,主要是在GUI平台上实现,其主窗口界面如图4.1所示。图4.1 主窗口界面主界面包括文件、功能、帮助三个部分,而文件菜单下又分为打开、保存、退出等操作,而功能菜单下有包括图像的几何变换操作、图像增强操作、图像变换操作、图像分析操作等菜单,每一个菜单相应的还会有几个子菜单,具体对应的就是每一部分图像处理的算法。进入系统之后会出现如下几个界面,即为系统处理的主操作界面,如图4.2、图4.3所示。 图4.2 模块界面1 图4.3 模块界面24.2 各功能模块设计原理及其实现整个系统主要包括以下的功能模块: (1) 文件操作模块:主要是对各种不同格式的图像进行打开、保存、退出等操作;(2) 图像几何处理操作模块:在MATLAB影像处理工具箱提供的一些基本的几何操作函数,主要包括图像的旋转、剪切和缩放;(3) 图像增强模块:图像增强处理主要包括直方图修改处理、图像中值滤波处理和图像对比度、亮度调节处理等;(4) 图像变换模块:能完成对图像的傅立叶变换、离散余弦变换的变换功能;(5) 图像分割模块:能完成阈值法分割、边缘检测法功能。4.2.1 文件模块设计原理及其实现文件模块部分主要包括了3个功能分别是打开、保存以及退出三个部分。下面以图像打开功能实现为例:打开部分主要是在采用回调函数,对于打开菜单项的函数,要打开一个图片,当然必须要用打开对话框。下面是打开菜单的响应函数: name,path=uigetfile('*.*','','载入图像')8;点击“文件”下的“打开”,会打开如下的打开对话框:如图4.4所示。 图4.4 打开模块弹窗图 图4.5 保存模块弹窗图而对于文件模块的其他子模块的实现过程不在此进行一一展示,如图4.5所示为保存子模块在系统软件中实现的效果图。4.2.2 几何变换模块设计原理及其实现在Matlab影像处理工具箱提供的一些基本的几何操作函数,主要包括插补运算,图像的旋转、剪切和缩放,而在本文中主要是实现对于图像的旋转、剪切和缩放;下面就图像的旋转为例对几何变换模块功能的实现过程作一个介绍。对于图像的旋转实现主要是调用了函数imrotate()9,其可以通过一种特定的插补方法来改变显示图像的角度,其语法格式如下:B=imrotate(A,angle,method)例如下面就图像的旋转功能进行实现,对图像旋转60°,仿真图像如图4.6所示。图4.6 图像旋转60°效果图而在对图像剪切、图像缩放的功能实现,其在本系统的仿真效果分别如图4.7、4.8所示。 图4.7 图像的矩形区域剪切 4.8 图像双线性插值缩放5倍4.2.3 图像增强模块设计原理及其实现图像增强是指按特定的需要突出一副图像中的某些信息,同时削弱或去除某些不需要的信息的处理方法,其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更实用。图像增强处理主要包括直方图修改处理、图像平滑滤波处理和图像尖锐化处理等。下面就图像的中值滤波对图像的增强功能在本系统的实现作一个介绍。中值滤波器是一种常用的非线性平滑滤波器,其滤波原理与均值滤波原理类似,中值对极限像素值远不如平均值那么敏感,所以中值滤波器产生的模糊较少,更适合于消除图像的孤立噪声点。MATLAB图像处理工具箱中提供medifilt210函数用于实现中值滤波,语法格式为:J=medifilt2(I,m,n)其中,m,n为指定滤波器窗口的大小,默认值为。图像I的数据类型可以是double型和uint8型11。下面对图像进行中值滤波的功能实现,主体程序代码如下:z=medfilt2(x,p1,p2,'symmetric'); %中值滤波仿真运行结果如图4.13所示。图4.9 中值滤波而对于图像灰度修正图像、对比度调整、直方图修正、直方图的均衡的仿真效果图分别如图4.10、4.11、4.12、4.13所示。 图4.10 图像的对比度调节 图4.11 图像直方图的实现 图4.12 图像直方图均衡 图4.13 图像的灰度调节4.2.4 正交变换模块设计原理及其实现图像变换就是将图像转换到变换域,例如频率域,进行图像处理和图像分析。这给图像数据压缩、特征提取、图像除噪等带来了极大的方便,从而使后续运算变得简单12。下面就傅立叶变换(FFT)频谱的实现对图像的正交变换做一个简单的介绍。傅立叶变换是应用最广泛的一种图像变换,也是理解其他变换的基础。从线性代数的角度看一副灰度图像可以被看成一个非负矩阵13,因此数字图像处理主要是二维数据处理,所以主要介绍二维傅里叶变换。二维函数的傅立叶变换定义为:(4.3)一般来说,一个变换的反变换都应该存在,当然也存在没有反变换的变换,但是一个变换的反变换如果不存在,则失去了它的利用价值14。傅里叶变换的反变换定义为:(4.4)如果要对一个连续信号进行计算机处理,那么就必须对它进行离散化。设为二维空间中的函数,共有个元素,其二维离散傅立叶变换(DFT)定义为15:(4.5) 将傅里叶变换的结果进行可视化的另一种方法是用图像的方式显示变换结果的对数幅度值,如图4.14所示。图4.14 傅立叶变换幅度对数的二维显示下面就傅里叶谱的功能进行实现,其代码如下16:F=fft2(x);程序运行结果如图4.15所示。图4.15 原始图像及其傅里叶谱而对于离散余弦变换(DCT)频谱仿真图及其压缩效果图如图4.16、4.17所示。 图4.16 DCT变换前的图像和DCT变换系数矩阵 图4.17 压缩前后的图像对比对比上图可以看出,几乎85%的DCT系数被丢失,导致重建图像有一些质量损失,但是不影响视觉效果17。4.2.5 图像分析模块设计原理及其实现图像分析就是详细研究并描述组成一副图像的各个不同部分的特征及其相互关系,分析的结果是用数字、文字、符号、几何图形或几者的组合来表示原始图像18。下面就图像的边缘检测做一个详细的介绍。物体的边缘是以图像局部特性的不连续性的形式出现的,例如,灰度值的突变,颜色的突变,纹理结构的突变等。图像的边缘有方向和幅度两个特性。通常,沿边缘走向的像素变换平缓,而垂直于边缘走向的像素变换剧烈。这种变换可能呈现阶跃型、房顶型和凸缘型19,如下图,这些变化分别对应景物中不同的物理状态。如图4.18。 (1)阶跃型 (2)房顶型 (3)凸缘型 图4.18 各种不同的物理状态MATLAB图像处理工具箱提供的“edge”函数可以实现检测边缘的功能,其语法格式如下:BW=edge(I,'sobel')20更详细的使用语法可以在MATLAB命令窗口中键入“help edge.m”获得帮助。而用Robert算子和Sobel算子进行边缘提取的效果如图4.17、4.18所示。 图4.19 经Robert算子变换前后对比 图4.19 经Sobel算子变换前后对比而对于图像分割中的阈值分割在此就不在详细介绍,其在本系统中实现的效果图如图4.20所示。图4.21 阈值分割效果图4.2.6 其他功能模块的设计及其实现本块内容主要是帮助功能模块的实现,主要涉及到的是对以上所设计到的功能模块进行一个简要的解释答疑的过程,由于本身水平以及时间的问题,并不能对各个模块的功能进行一一的解答,故本模块主要是使用了helpdlg函数21,另外弹出提示对话框,其程序代码如下helpdlg(' ',' ')其处理效果如图4.21和4.22所示。 图4.22 帮助对话框 图4.23 关于对话框总结本文主要阐述了基于MATLAB的数字图像处理系统的设计与实现,为图像处理的初学者和处理算法的研究人员提供一个算法演示及模拟开发的GUI平台,供学习并研究图像处理的技术方法。 本软件主要优点如下:(1) 能打开、存储、关闭不同格式的图像文件,而且在文件操作时,能方便的选择各种不同的图像格式,如:bmp、 jpg、 tiff、 gif等大部分主流图片格式。(2) 系统涵盖了图像处理技术的大部分算法,能够满足一般图像处理的需求,同时也具有很强的移植性和扩展性,能够比较方便的增加新的功能,满足用户需求。(3) 系统界面简单,设计了友好的、易于操作的人机交互界面,使用者只需要利用鼠标和键盘就能方便地使用本系统。 同时本软件也存在一些方面的不足:(1) 系统算法功能比较简单,只能对简易的图像处理功能进行实现,还需进一步完善与增强,最好能够囊括一些比较创新性的算法。(2) 对于有些功能系统处理速度较为缓慢,所以对程序代码方面有待进一步的优化,设计高效率的算法。 致谢本论文是在我的导师杨保华老师的悉心指导下完成的,从最初论文的选题以及论文资料的找寻,老师都给与了我很多宝贵的意见与帮助,在此谢谢杨保华老师,也非常谢谢康钦清老师提供的帮助。同时也感谢大学四年来所有的老师在学习和生活中的诸多关心和严格要求。在此,谨向各位老师致以崇高的敬意和衷心的感谢!同时也感谢学校四年来对我的培养,最后感谢四年朝夕相伴的同学、朋友们。在此,再次谨向所有帮助我的老师和同学表示最诚挚的谢意!由于自身专业水平的不足,本文可能会存在某些尚未发现的错误。恳请阅读此篇论文的老师,给予指正,不胜感激!参考文献1 河东健.耿楠.张义宽. 数字图像处理M.西安:西安电子科技大学出版社,2003:314.2 杨帆. 数字图像处理与分析M. 北京:北京航空航天大学出版社,2007:1011.3 张磊.毕靖.郭莲英. MATLAB实用教程M. 北京:人民邮电出版社,2008:5657.4 黎宁,徐晓波,牛征. MATLAB平台下图像处理实验教学软件的实现J.电气电子教学学报,2001,5(1):6415.5 孙祥,黄晓鸣.基于MATLAB的集成化图像处理系统J.科学技术与工程,2007,20(1):1518.6 陈超等.MATLAB应用实例精讲图像处理与GUI设计篇M. 北京:电子工业出版设,2011:231235.7 岗萨雷斯.数字图像处理(Matlab版)M.北京:电子工业出版社. 2006:159162.8 王辰. Matlab 6.5辅助图像处理M. 北京: 飞思科技产品研发中心. 2003:117118.9 施德路.基于MATLAB的图像处理系统的设计与实现D. 吉林:吉林大学,2007年.10 全星慧,范武君,张华.基于MATLAB的数字图像处理课件设计J.计算机与现代化,2008,7(1):8789.11 陈杰.MATLAB宝典M.北京:电子工业出版社,2007:14. 12 勒中鑫.数字图像信息处理M.北京:国防工业出版社.2003:207268. 13 邓华.浅谈MATLAB在数字图像处理中的应用J.科技资讯.2006,8(1):128129. 14 王帆,刘慧.基于Matlab GUI的数字图像处理实验平台设计J.中国科技信息,2011,7(1):236238.15 黄飞,李灿平,任小庆,罗毅详.基于Matlab/GUI的图像处理软件开发J. 长沙通信职业技术学院学报,2010,3(1):1719.16 张敏,洪汉玉.通过MATLAB GUI实现图像处理软件的开发J.电脑知识与技术,2011,25(1): 3235.17 梁原.基于MATLAB的数字图像处理系统研究:D. 长春:长春理工大学,2008年. 18 陈垚光.毛涛.精通MATLAB GUI设计M.北京:电子工业出版社,2011:5364. 19 李开友.基于MATLAB的工程运算可视化系统的设计与实现D.昆明:昆明理工大学计算机系.2006. 20 赖志国.MATLAB图像处理与应用(第2版)M.北京:国防工业出版社,2007: 103114.21 黄书先.基于MATLAB平台的可视化图像处理系统设计方法J.长江大学学报(自然科学版),2005,4(1):6466.专心-专注-专业