MATLAB在图像处理和分析中的应用

  • 格式:pdf
  • 大小:155.22 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB在图像处理和分析中的应用

邓 巍,丁为民,张 浩

(南京农业大学 工学院,南京 210031)

摘 要:MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。为此,介绍了如何利用MATLAB图像工具箱来实现经典的图像处理,并以血管三维重建为例,说明如何用MATLAB实现经典的数字图像处理,最后验证了该语言是简洁的、可读性较强的高效率编程软件。

关键词:计算机软件;数字图像处理;应用;MATLAB;血管三维重建

中图分类号:TP312 文献标识码:A 文章编号:1003—188X(2006)06—0194—05

0 引言

图像处理着重强调在图像之间进行的变换。虽然人们常用的图像处理泛指各种图像技术,但比较狭义的图像处理主要指对图像进行各种加工,以改善图像的视觉效果,并为自动识别打基础;或对图像进行压缩编码,以减少对其所需存储空间、传输时间和传输道路的要求。图像分析主要是对图像中感兴趣的目标检测和测量,以获得它们的客观信息,从而建立对图像的描述。如果说图像处理是一个从图像到图像的过程,则图像分析是一个从图像到数据的过程。这里的数据可以是对目标特征测量的结果,或是基于测量的符号表示。它们描述了图像中目标的特点和性质。对图像的处理和分析一般可用算法的形式描述,而大多数的算法可用软件实现。只有在为了提高速度或克服通用计算机限制的情况下,才采用特别的硬件[1]。

MATLAB语言自从20世纪80年代中期推出以来,不断吸收各学科领域权威人士所编写的实用程序,经过多年的逐步发展与不断完善,现已成为国际公认的、最优秀的科学计算与数学应用软件之一,是近几年来在国内外广泛流行的一种可视化科学计算软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的、用户环境,而且还具有可扩展性特征[2]。

MATLAB不仅具有面向对象的计算机语言特征,而且初具面向任务的计算机语言的思想。本文从实际应用的角度介绍如何利用MATLAB进行图像的处理和分析。

1 MATLAB概述

MathWorks公司针对不同领域的应用,推出了信号处理、控制系统、神经网络、图像处理、小波分析、鲁棒控制、非线性系统控制设计、系统辨识、优化设计、统计分析、财政金融、样条及通信等30多个具有专门功能的工具箱,这些工具箱是由该领域内学术水平较高的专家编写的,用户可直接运用,无需再编写专业基础程序。同时,工具箱内的函数源程序也是开放性的,多为M文件,用户可以查看这些文件的代码并进行更改。MATLAB支持用户对其函数进行二次开发,用户的应用程序也可以作为新的函数添加到相应的工具箱中。

MATLAB的指令表达与数学、工程中常用的习惯形式十分相似,从而使许多用C或Fortran实现起来十分复杂且费时的问题用MATLAB就可以轻松地解决。

1.1 MATLAB的特点

一种语言之所以如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其它语言的特点。正如同Fortran和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称为第4代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。 1.1.1 功能强大

MATLAB具有功能强劲的工具箱,其包含两个部分:核心部分和各种可选的工具箱。核心部分中,有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文

收稿日期:2005-06-24

作者简介:邓 巍(1969-),女,乌鲁木齐人,副教授,博士研究生,(E-mail)njaudwei@。

字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科,而学科性工具箱是专业性比较强的,例如control toolbox, image processing toolbox, signal processing toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,就能够直接进行高、精、尖的研究。

1.1.2 界面友好,编程效率高

MATLAB突出的特点就是简洁。它用更直观的、符合人类思维习惯的代码代替了C和Fortran语言的冗长代码,给用户带来的是最直观、最简洁的程序开发环境。MATLAB语言简洁紧凑,使用方便灵活,库函数极其丰富,程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都是由本领域的专家编写的,因此用户不必担心函数的可靠性。可以说,用MATLAB进行科学开发是站在专家的肩膀上来完成的。

1.1.3 开放性强

MATLAB有很好的可扩充性,可以把它当成一种更高级的语言去使用。各种工具箱中的函数可以互相调用,也可以由用户更改。MATLAB支持用户对其函数进行二次开发,用户的应用程序可以作为新的函数添加到相应的工具箱中。

1.2 MATLAB的主要功能

MATLAB之所以成为世界顶级的科学计算与数学应用软件,是因为它随着版本的升级与不断完善而具有越来越强大的功能。

1.2.1 数值计算功能

MATLAB出色的数值计算功能是使之优于其他数学应用软件的决定性因素之一。

1.2.2 符号计算功能

MATLAB符号运算的独特之处:无需事先对变量赋值,而所得的结果以标准的符号形式表达,符号计算的整个过程以字符进行。

1.2.3 数据分析功能

MATLAB可以将计算数据以二维、三维乃至四维的图形表现。这不仅使数据间的关系清晰、明了,而且对于揭示其内在本质有着非常重要的作用。 1.2.4 动态仿真功能

MATLAB提供了一个模拟动态系统的交互程序SIMULINK,用户通过简单的鼠标操作,就可建立起直观的系统模型,并进行仿真。

1.2.5 图形文字统一处理功能

MATLAB Notebook成功地将Microsoft Work与MATLAB集成为一个整体,为文字处理、科学计算、工程设计营造了一个完美、统一的工作环境。它既拥有Word强大的文字处理功能,又能通过Word访问MATLAB的数据计算和可视化结果[3]。

2 利用MATLAB进行图像处理

数字图像处理是使用数字计算机对图像进行加工和处理的过程。最早的使用是20世纪60年代美国喷气推出实验室(Jet Propulsion Laboratory)使用数字计算机对大批月球照片进行处理,得到了清晰的图像。此后,数字图像处理技术在各个领域都得到了广泛的应用[4]。

数字图像研究的领域非常广泛,从学科上可以分为图像的数字化、图像变换、图像增强、图像恢复、图像分割、图像分析和理解、图像的压缩等。

MATLAB6.x提供了20类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按功能可分为图像显示、图像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换[5]。 2.1 常用图像操作

2.1.1 图像类型转换

MATLAB图像处理工具箱支持4种图像类型,分别为真彩色图像(RGB)、索引色图像、灰度图像(I)和二值图像(BW)。由于有的函数对图像类型有限制,因此这4种类型可以用工具箱的类型转换函数相互转换。MATLAB可操作的图像文件包括BMP,HDF,JPEG,PCX,TIFF和XWD等格式。例如,要对一幅索引色图像滤波,首先应该将它转换成真彩色图像或者灰度图像,这时MATLAB将会对图像的灰度进行滤波,即通常意义上的滤波。如果不将索引色图像进行转换,MATLAB则对图像调色板的序号进行滤波,这是没有意义的。

2.1.2 图像文件的读写与显示操作

MATLAB为用户提供了专门的函数,以从图像格式的文件中读写图像数据。imread()函数用于读入各种图像文件,imwrite()函数用于输出图像,imfinfo()函数用于读取图像文件的有关信息。

把图像显示于屏幕有imread()、image()等函数。用subplot()函数能将一个图像窗口分成几个部分,但同一个图像窗口内只能有一个调色板。 subimage函数可在一个图像窗口内使用多个调色