基于MATLAB的数字图像处理的设计与实现 转

 基于MAT

【摘要】数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人们服务。数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。目的:改善医学图像质量,使图像得到增强。方法:利用Matlab工具箱函数,采用灰度直方图均衡化和高通滤波的方法对一幅X线图像进行增强处理。结果:用直方图均衡化的算法,将原始图像密集的灰度分布变得比较稀疏,处理后的图像视觉效果得以改善。高通滤波对于局部细节增强显著,高通滤波后使不易观察到的细节变得清晰。结论:使用Matlab工具箱大大简化了编程工作,为医学图像处理提供了一种技术平台。经过直方图均衡化和高通滤波处理后的医学图像,视觉效果得到改善。

关键词】MATLAB;医学数字图像处理;直方图均衡化;高通滤波;图像增强

目录

1 绪论 1

1.1 课题研究目的及意义 1

1.2 国内外研究现状 2

2 数字图像处理的简介 4

2.1 什么是数字图像 4

2.2 数字图像处理概述 5

2.2.1 基本概念 5

2.2.2 研究内容 6

2.2.3 基本特点 7

2.2.4 主要应用 7

2.3 图像处理文件格式 8

2.3.1 MATLAB图像文件格式 8

2.3.2 图像类型 9

3 MATLAB基本知识介绍 11

3.1 MATLAB的概述 11

3.2 MATLAB产生的历史背景 11

3.3 MATLAB语言的特点 12

3.4 MATLAB在图像处理中的应用 13

4 方法 15

4.1 图像的预处理 15

4.2 空间域处理 15

4.2.1 直方图均衡化 15

4.3 频率域处理 17

4.3.1 图像的傅里叶变换 17

4.3.2 傅里叶逆变换 18

4.3.3 图像频域滤波 18

4.3.4 巴特沃斯高通滤波 19

5 结果 21

5.1 预处理后的结果 21

5.2 直方图均衡化后的结果 21

5.3 巴特沃斯高通滤波后的结果 21

6 总结 21

7 展望 22

【参考文献】 23

致谢 24

附 录 25

1 绪论

根据国内外的相关文献,研究和发展图像处理工具,改善医学图像质量是当今研究的热点。图像增强就是一种基本的图像处理技术,增强的目的是对图像进行加工,以得到对医务工作者来说视觉效果更“好”更易于诊断的图像。图像增强根据图像的模糊情况采用了各种特殊的技术突出图像整体或局部特征,常用的图像增强技术有灰度变换、直方图处理、平滑滤波(高斯平滑),中值滤波、剃度增强、拉普拉斯增强以及频率域的高通低通滤波等,这些算法运算量大、算术复杂、处理速度低。针对这些问题,我们可以在Matlab环境中,利用Matlab提供的图像处理工具箱,简单快捷地得到统计数据,同时又可得到直观图示,其中,Matlab工具箱中包括的图像处理函数涵盖了近期研究成果在内几乎所有的技术方法,都是由该领域内学术水平很高的专家编写的,功能强大,集成在一个便于用户使用的交互式环境之中,是易学、易用、高效的应用工具箱。

1.1 课题研究目的及意义

数字图像处理(Digital Image Processing),就是利用数字计算机或者其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。

由于计算机处理能力的不断增强,数字图像处理学科在飞速发展的同时,也越来越广泛地向许多其他学科快速交叉渗透,使得图像作为信息获取以及信息的利用等方面也变得越来越重要。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。

MathWorks公司推出的MATLAB软件是学习数理知识的好帮手。应用MATLAB友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。

图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大,已在国家安全、经济发展、日常生活中充当越来越重要的角色,对国计民生的作用不可低估。

1.2 国内外研究现状

数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。

早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术,如对火星、土星等星球的探测研究中,数字图像处理技术都发挥了巨大的作用。数字图像处理取得的另一个巨大成就是在医学上获得的成果。1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(Computer Tomograph)。CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。1975年EMI公司又成功研制出全身用的CT装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。

与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索新的领域。

处理的简介

2.1 什么是数字图像

所谓数字图像就是把传统图像的画面分割成如图2-1所示的被成为像素(picture element, 简称pixel。有时候也用pel这一简写词)的小的离散点,各像素的灰度值也是用离散值即整数值来表示的。数字图像(digital imagine)和传统的图像即模拟图像(picture)是有差别的。

基于MATLAB的数字图像处理的设计与实现 转_第1张图片

图2-1 数字图像

为了从一般的照片,景物等模拟图像中得到数字图像,需要对传统的模拟图像进行采样与量化两种操作(二者统称为数字化)。

  1. 采样

采样(sampling)就是把在时间上和空间上连续的图像变成离散点(采样点,即像素)的集合的一种操作。

图像基本上是在二维平面上连续分布的信息形式要把它输入到计算机中,首先要把二维信号变成一维信号,因此要进行扫描(scanning)。最常用的扫描方法是在二维平面上按一定间隔顺序地从上方顺序地沿水平方向的直线(扫描线)扫描,从而取出浓淡值(灰度值)的线扫描(Laster扫描)。对于由此得到的一维信号,通过求出每一特定间隔的值,可以得到离散的信号。对于运动图像除进行水平,垂直两个方向的扫描以外,还有进行时间轴上的扫描。

通过采样,如设横向的像素数为M,纵向的像素数为N,则画面的大小可以表示为“M*N”个像素。

  1. 量化

经过采样,图像被分解成在时间上和空间上离散分布的像素,但是像素的值(灰度值)还是连续值。像素的值,是指白色-灰色-黑色的浓淡值,有时候也指光的强度(亮度)值或灰度值。把这些连续的浓淡值或灰度值变为离散的值(整数值)的操作就是量化。

如果把这些连续变化的值(灰度值)量化为8bit,则灰度值被分成0-2552的256个级别,分别对应于各个灰度值的浓淡程度,叫做灰度等级或灰度标度。

在0-255的值对应于白-黑的时候,有以0为白,255为黑的方法,也有以0为黑,255为白的方法,这取决于图像的输入方法以及用什么样的观点对图像进行处理等,这是在编程时应特别注意的问题。但在只有黑白二值的二值图像的情形,一般设0为白,1为黑。

对连续的灰度值赋予量化级的,即灰度值方法有:均匀量化(uniform quantization),线性量化(liner quantization),对数量化,MAX量化,锥形量化(tapered quantization)等。

3. 采样、量化和图像细节的关系

上面的数字化过程,需要确定数值N和灰度级的级数K。在数字图像处理中,一般都取成2的整数幂,即:

(2.1)

(2.2)

一幅数字图像在计算机中所占的二进制存储位数b为:

(2.3)

例如,灰度级为256级(m=8)的512×512的一幅数字图像,需要大约210万个存储位。随着N和m的增加,计算机所需要的存储量也随之迅速增加。

由于数字图像是连续图像的近似,从图像数字化的过程可以看到。这种近似的程度主要取决于采样样本的大小和数量(N值)以及量化的级数K(或m值)。N和K的值越大,图像越清晰。

2.2 数字图像处理概述

2.2.1 基本概念

数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

2.2.2 研究内容

数字图像处理主要研究的内容有以下几个方面:

(1)图像变换。由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅里叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。

(2)图像编码压缩。图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

(3)图像增强和复原。图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。

(4)图像分割。图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。

(5)图像描述。图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。

(6)图像分类(识别)。图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。

2.2.3 基本特点

(1)数字图像处理的信息大多是二维信息,处理信息量很大。如一幅256×256低分辨率黑白图像,要求约64kbit的数据量;对高分辨率彩色512×512图像,则要求768kbit数据量;如果要处理30帧/秒的电视图像序列,则每秒要求500kbit~22.5Mbit数据量。因此对计算机的计算速度、存储容量等要求较高。

(2)数字图像处理占用的频带较宽。与语言信息相比,占用的频带要大几个数量级。如电视图像的带宽约5.6MHz,而语音带宽仅为4kHz左右。所以在成像、传输、存储、处理、显示等各个环节的实现上,技术难度较大,成本亦高,这就对频带压缩技术提出了更高的要求。

(3)数字图像中各个像素是不独立的,其相关性大。在图像画面上,经常有很多像素有相同或接近的灰度。就电视画面而言,同一行中相邻两个像素或相邻两行间的像素,其相关系数可达0.9以上,而相邻两帧之间的相关性比帧内相关性一般说还要大些。因此,图像处理中信息压缩的潜力很大。

(4)由于图像是三维景物的二维投影,一幅图象本身不具备复现三维景物的全部几何信息的能力,很显然三维景物背后部分信息在二维图像画面上是反映不出来的。因此,要分析和理解三维景物必须作合适的假定或附加新的测量,例如双目图像或多视点图像。在理解三维景物时需要知识导引,这也是人工智能中正在致力解决的知识工程问题。

(5)数字图像处理后的图像一般是给人观察和评价的,因此受人的因素影响较大。由于人的视觉系统很复杂,受环境条件、视觉性能、人的情绪爱好以及知识状况影响很大,作为图像质量的评价还有待进一步深入的研究。另一方面,计算机视觉是模仿人的视觉,人的感知机理必然影响着计算机视觉的研究。例如,什么是感知的初始基元,基元是如何组成的,局部与全局感知的关系,优先敏感的结构、属性和时间特征等,这些都是心理学和神经心理学正在着力研究的课题。

2.2.4 主要应用

计算机图像处理和计算机、多媒体、智能机器人、专家系统等技术的发展紧密相关。近年来计算机识别、理解图像的技术发展很快,也就是图像处理的目的除了直接供人观看(如医学图像是为医生观看作诊断)外,还进一步发展了与计算机视觉有关的应用,如邮件自动分检,车辆自动驾驶等。下面仅罗列了一些典型应用实例,而实际应用更广。

(1)在生物医学中的应用

主要包括显微图像处理;DNA显示分析;红、白血球分析计数;虫卵及组织切片的分析;癌细胞的识别;染色体分析等等。

(2)遥感航天中的应用

军事侦察、定位、导航、指挥等应用;多光谱卫星图像分析;地形、地图、国土普查;地质、矿藏勘探;天文、太空星体的探测及分析等。

(3)工业应用

CAD 和CAM技术用于模具、零件制造、服装、印染业;零件、产品无损检测,焊缝及内部缺陷检查;交通管制、机场监控;火车车皮识别等。

(4)军事公安领域中的应用

巡航导弹地形识别;指纹自动识别;警戒系统及自动火炮控制;反伪装侦察;手迹、人像、印章的鉴定识别;过期档案文字的复原;集装箱的不开箱检查等。

(5)其他应用

图像的远距离通信;多媒体计算机系统及应用;电视电话;服装试穿显示;理发发型预测显示;电视会议;办公自动化、现场视频管理等。

2.3 图像处理文件格式

2.3.1 MATLAB图像文件格式

MATLAB支持以下几种图像文件格式:

(1)PCX(Windows Paintbrush)格式。可处理1,4,8,16,24位等图像数据。文件内容包括:文件头(128字节),图像数据、扩展颜色映射表数据。

(2)BMP(Windows Bitmap)格式。有1,4,8,24位非压缩图像,8位RLE(Run-length Encoded )图像。文件内容包括:文件头(一个BITMAP FILEHEADER数据结构),位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜色表)和图像数据。

(3)HDF(Hierarchical Data Format)格式。有8位,24位光栅数据集。

(4)JPEG(Joint Photographic Experts Group)格式,是一种成为联合图像专家组的图像压缩格式。

(5)TIFF(Tagged Image File Format)格式。处理1,4,8,24位非压缩图像,1,4,8,24位packbit压缩图像,一位CCITT压缩图像等。文件内容包括:文件头,参数指针表与参数域,参数数据表和图像数据四部分。

(6)XWD(X Windows Dump)格式。1,8位Zpixmaps,XYbitmaps,1位XYpixmaps。

(7)PNG(Portable Network Graphics)格式。

2.3.2 图像类型

MATLAB中,一幅图像可能包含一个数据矩阵,也可能包含一个颜色映射表矩阵。MATLAB中有四种基本的图像类型:

(1)索引图像

索引图像包括图像矩阵与颜色图数组,其中,颜色图是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵包含一个值,这个值就是颜色图中的索引。颜色图为m*3双精度值矩阵,各行分别指定红绿蓝(RGB)单色值。Colormap=[R,G, B],R,G,B为值域为[0,1]的实数值。

图像矩阵与颜色图的关系依赖于图像矩阵是双精度型还是uint8(无符号8位整型)类型。如果图像矩阵为双精度类型,第一点的值对应于颜色图的第一行,第二点对应于颜色图的第二行,依次类推。如果图像矩阵是uint8,有一个偏移量,第0点值对应于颜色图的第一行,第一点对应于第二行,依次类推;uint8长用于图形文件格式,它支持256色。

(2)灰度图像

在MATLAB中,灰度图像是保存在一个矩阵中的,矩阵中的每一个元素代表一个像素点。矩阵可以是双精度类型,其值域为[0,1];也可以为uint8类型,其数据范围为[0,255]。矩阵的每个元素代表不同的亮度或灰度级。

(3)二进制图像

二进制图像中,每个点为两离散值中的一个,这两个值代表开或关。二进制图像保存在一个由二维的由0(关)和1(开)组成的矩阵中。从另一个角度讲,二进制图像可以看成为一个仅包括黑与白的灰度图像,也可以看作只有两种颜色的索引图像。

二进制图像可以保存为双精度或uint8类型的双精度数组,显然使用uint8类型更节省空间。在图像处理工具箱中,任何一个返回二进制图像的函数都是以uint8类型逻辑数组来返回的。

(4)RGB图像

与索引图像一样,RGB图像分别用红,绿,蓝三个亮度值为一组,代表每个像素的颜色。与索引图像不同的是,这些亮度值直接存在图像数组中,而不是存放在颜色图中。图像数组为M*N*3,M,N表示图像像素的行列数。

介绍

3.1 MATLAB的概述

MATLAB 是Matrix Laboratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。

MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.

开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.

3.2 MATLAB产生的历史背景

在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.

  到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序.Cleve Moler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(labotatory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.

  1983年春天,Cleve Moler到Standford大学讲学,MATLAB深深地吸引了工程师John Little.John Little敏锐地觉察到MATLAB在工程领域的广阔前景.同年,他和Cleve Moler,Steve Bangert一起,用C语言开发了第二代专业版.这一代的MATLAB语言同时具备了数值计算和数据图示化的功能.

  1984年,Cleve Moler和John Little成立了Math Works公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发.

  在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数值计算型软件,如MATLAB,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件MATLAB.经过多年的国际竞争,MATLAB以经占据了数值软件市场的主导地位.

  在MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。

  时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。

3.3 MATLAB语言的特点

一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。

(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。

(2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。

(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。

(4)程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。

(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

(6)MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。

(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。

(8)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如control,toolbox, signl processing toolbox,

commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。

(9)源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

3.4 MATLAB在图像处理中的应用

图像处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。

(1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(),用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,还有图像显示函数 image()、imshow()等等。

(2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了I,J两幅图像的卷积。

(3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。

(4) 图像的分析和增强。针对图像的统计计算MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。

(5) 图像的数学形态学处理。针对二值图像,MATLAB 提供了数学形态学运算函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等丰富的数学形态学运算。

以上所提到的 MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。具体的用法可参考MATLAB丰富的帮助文档。图像边缘对图像识别和计算机分析十分有用,在MATLAB中,函数 edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即Sobel方法、Prewitt 方法、Robert 方法,Laplacian2Gaussian方法、过零点方法和Canny方法。

4 方法

4.1 图像的预处理

先判断图像(图像获取地址http://www.zjemw.com/knowledge/showknowledge.asp

?docid=y2011m08d31h11m59s46)的格式,由于获取的图片为真彩色图像,既RGB图像,则可用rgb2gray()函数转为灰度图像。

4.2 空间域处理

数字图像处理技术可分为“空间域”技术和“频率域”技术两大类。“空间域”指图像平面自身,这类方法是以对图像像素的直接处理为基础。

4.2.1 直方图均衡化

直方图均衡化是利用直方图的统计数据进行直方图的修改,能有效的处理原始图象的直方图分布情况,使各灰度级具有均匀的概率分布,通过调整图像灰度值的动态范围,自动地增加整个图像的对比度,以致图像具有较大的反差,大部分细节比较清晰。直方图均衡化算法根据直方图增强技术理论:设原始图像在(x,y)处的灰度为f,而改变后的图像为g,对于离散图像,则对图像增强的方法为:g = EH(f)。 EH(f)为映射函数,必须满足两个条件(其中图像的象素总数为n,分L个灰度等级): ① EH(f)在 0≤f≤L-1范围内是一个单值且单增函数;② 对于0≤f≤L-1有0≤g≤L-1. 则直方图均衡化法的映射函数为:

(k=0,1,2,……,L-1)

(

) (4.1)

根据该方程可以由原图像的各象素灰度值直接得到直方图均衡化后各象素的灰度值。由于算术计算过程复杂,本文利用MATLAB的Image toolbox工具箱中直方图均衡化histeq()函数同样可以实现对图像的增强。

图 4-1(a)为原始图像,图 4-1(b)所示的图像是用函数imadjust()调整后的图像,该函数是把灰度级低于0.2的像素变成灰度级0,把[0.2 1]扩展到[0 1]图像的对比度明显改善。图 4-1(c)为(b)图像的直方图。图 4-1(e)为(b)图像直方图均衡化后的图像,与(b)图像相比,骨头的对比度得到改善,但是背景比较朦胧。图 4-1(d)为(e)图像的直方图,与(c)直方图相比,高灰度级产生的均衡化,但低灰度没有像素。图 4-1(f)为(e)调整后的图像,明显可以观察到,背景的朦胧大部分除掉了。

基于MATLAB的数字图像处理的设计与实现 转_第2张图片

基于MATLAB的数字图像处理的设计与实现 转_第3张图片

  1. (b)

基于MATLAB的数字图像处理的设计与实现 转_第4张图片

基于MATLAB的数字图像处理的设计与实现 转_第5张图片

  1. (d)

基于MATLAB的数字图像处理的设计与实现 转_第6张图片

基于MATLAB的数字图像处理的设计与实现 转_第7张图片

  1. (f)

图 4-1 图像直方图均衡化

4.3 频率域处理

“频率域”处理技术是以修改图像的傅里叶变换为基础的, 在傅里叶变换中,低频主要决定图像在平滑区域中总体灰度级显示,而高频决定图像细节部分,如边缘和噪声。使高频通过而使低频衰减的滤波器称为“高通滤波器”,被高通滤波后的图像在平滑区域中将减少一些灰度级的变化,并突出过渡(如边缘)灰度级的细节部分。巴特沃斯高通滤波器是一种频率域处理技术。

4.3.1 图像的傅里叶变换

一副尺寸为M×N 的数字图像可表示成一个二维离散函数f(x,y)其中x=0,1,2,⋯, M-1,y=0,1,2,⋯,N-1。f(x,y)的傅里叶变换为:

(4.2)

在实际应用中,傅里叶变换可以通过使用快速傅里叶变换算法实现。一个大小为M*N的图像数组f可以通过MATLAB的Image toolbox工具箱的函数fft2()得到。

图 4-2(a)所示图 4-1(f)图像经过傅里叶变换后得到的频谱图。图 4-2(b)为(a)图像使用IPT函数fftshift()将变换的原点移到频域矩形的中心点的图像,靠近中心点的区域代表了图像频率的低频区,远离中心的区域是高频区。

基于MATLAB的数字图像处理的设计与实现 转_第8张图片

基于MATLAB的数字图像处理的设计与实现 转_第9张图片

  1. (b)

图 4-2 傅里叶变换

4.3.2 傅里叶逆变换

频谱图可以通过傅里叶逆变换无失真地还原图像,公式(5.2)的傅里叶逆变换公式如下:

(4.3)

公式(4.3)两边取复共轭得:

(4.4)

公式(4.4)与傅里叶变换公式(5.1)非常类似,因此只要调用傅里叶变换算法,将

作为输入,可求得

,然后再对

取复共轭即可得到

。因为f(x,y)是实函数, 所以

=

4.3.3 图像频域滤波

频率域图像处理过程称为频域滤波,其基本步骤如图4-3所示:

后处理

傅里叶逆变换

滤波函数

H(u,v)

傅里叶变换

输入图像f(x,y)

输出图像

g(x,y)

F(u,v) H(u,v)F(u,v)

图 4-3

其中H(u,v)是传递函数,它的作用是在傅里叶变换中抑制某些频率但保留另一些频率,故又称为滤波器。f(x,y)是输入图像,F(u,v)是其傅里叶变换,设G(u,v)是滤波后的傅里叶变换,那么:

G(u,v)=H(u,v)F(u,v) (4.5)

实现G的算法并不复杂,因为H和F都是二维离散函数,H和F相乘实际上是逐个元素相乘,即H的第一个元素乘以F的第一个元素得G的第一个元素,⋯⋯,以此类推可求得G。G经过傅立叶反变换后可得到滤波处理后的数字图像。

4.3.4 巴特沃斯高通滤波

n阶截止频率为D0的巴特沃斯高通滤波器的传递函数为:

(4.6)

其中:

(4.7)

该传递函数的三维图如图4-4所示:

图 4-4 巴特沃斯高通滤波器的传递函数三维图

在实际应用中,一个大小为M*N的图像数组f可以通过MATLAB的Image toolbox工具箱的函数hpfilter()来实现高通滤波。

图 4-5(a)为图 4-1(f)图像经过巴特沃斯高通滤波后的图像,可以看出图像的边缘;图 4-5(b)为把图 4-5(a)图像累加到图 4-1(f)图像后的图像,与图 4-1(f)图像相比边界变得清晰;图 4-5(c)为进一步累加的后的图像;图 4-5(d)为进一步累加的后的图像;临床医生可以根据需要选择累加次数。

  1. (b)

  1. (d)

5 结果

5.1 预处理后的结果

用直方图均衡化算法对医学图像进行的增强实验,得到处理后图像(图 4-1(f))。经图像预处理后,显示结果为:原图像真彩色是608×500×3的矩阵,大小为0.87M;转为灰度图像后是608×500的矩阵,大小为0.27M。

5.2 直方图均衡化后的结果

原图(图 4-1(a))看到图像模糊不清,动态范围小,整个图像呈现低对比度。用直方图均衡化算法对医学图像进行的增强实验,得到处理后图像(图 4-1(f))。整个图像对比度明显增强。特别是脊柱边缘变得清楚。

5.3 巴特沃斯高通滤波后的结果

继对原图直方图均衡化后,进一步对图像做巴特沃斯高通滤波,图 4-1(f)是巴特沃斯高通滤波处理前的图像,可以看出图像的边缘比较模糊。图 4-5(a)是巴特沃斯高通滤波后的图像,可以清楚的看到整个图像的边缘;然后把边缘加到巴特沃斯高通滤波前的图像上面(如图 4-5(b)),可以看出整个图像变得清晰,图像得到锐化,边缘的对比度得到加强。再进一步累加,整体图像变得更清晰,边缘的对比度进一步得到加强,同时噪声也会加强,所以根据实际需要选择累加次数。

6 总结

本文主要介绍了数字图像的理论知识及MATLAB 语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB及其图像处理工具箱进行数字图像处理。直方图均衡化可以使模糊不清、动态范围小、低对比度的图像变得清晰、动态范围增大,呈现高对比度。高通滤波可以使图像边缘细节部分得到加强,使图像得到锐化。使图像变得更加清晰。直方图均衡化和高通滤波一起使用,可以使图像得到进一步加强,满足实际需要。

MATLAB为医学图像处理提供了一种技术平台,不仅对医学图像的分析和诊断有着

重要意义。而且对其他图像的增强也有一定的价值。

7 展望

随着计算机处理能力的不断增强,数字图像处理学科在飞速发展的同时,也越来越广泛地向许多其他学科快速交叉渗透,使得图像作为信息获取以及信息的利用等方面也变得越来越重要。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。

MathWorks 公司开发的MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。应用MATLAB友好的界面和丰富、实用、高效的指令及模块,可以使人较快地认识、理解图像处理的相关概念,逐步掌握图像信号处理的基本方法,进而能够解决相关的工程和科研中的问题。

利用MATLAB来实现数字图像处理使数字图像处理更加方便简单。图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使数字图像处理成为一门引人注目、前景远大的新型学科。

【参考文献】

[1] (美)冈萨雷斯(Gonzalez.R.C.)等著,阮秋琦等译.数字图像处理(MATLAB版).电子工业出版社,2005.9

[2] (美)冈萨雷斯(Gonzalez.R.C.)等著,阮秋琦等译.数字图像处理:第二版.电子工业出版社,2007.8

[3] 于万波,《基于MATLAB的图像处理》,清华大学出版社,2008.3

[4] 闫敬文,《数字图像处理MATLAB版》,国防工业出版社,2007.2

[5] 陈桂明,张明照,《应用MATLAB语言处理信号与数字图像》,科学出版社,2000.5

LAB的数字图像处理的设计与实现 

你可能感兴趣的:(matlab,算法,开发语言)