1、图形图像处理第一章 绪论图形图像处理起源于20世纪20年代,当时通过海底电缆从英国伦敦到美国纽约采用数字压缩技术传输了第一幅数字照片,用来改善图像的质量。此后由于遥感等领域的应用,使得图形图像处理技术逐步得到发展。一直到20世纪50年代,随着大型数字计算机和太空科学研究计划的出现,人们才注意到图像处理的潜力。1964年在美国航空总署的喷气推进实验室开始用计算机技术改善从太空探测器获得的图像。当时利用计算机技术处理由太空船“徘徊者七号”(Ranger 7)发回的月球照片,以校正电视摄影机所存在的几何失真或响应失真。这标志着第三代计算机问世后数字图像处理开始得到普遍应用。近年来随着计算机与信息技术
2、的高速发展,数字图像处理技术也得到了快速的发展,目前已成为计算机科学、医学、生物学、工程学、信息科学等领域各学科之间学习和研究的对象。1.1 数字图像图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视知觉的实体。其最广义的观点是指视觉信息。例如照片、图画、电视画面以及光学成像等。人类的大部分信息都是从图像中获得的。用计算机进行图像处理的前提是图像必须以数字格式存储,人们把以数字格式存放的图像称之为数字图像。而我们常见的照片、海报、广告招贴画等都属于模拟图像。若要将模拟图像数字化后生成数字图像,需要使用诸如扫描仪之类的数字化设备。模拟图像经过扫描仪进行
3、数字化后,或者由数码照相机拍摄的图片,在计算机中均是以数字格式存储的。为了把图像数字化,必须进行在空间点阵上的抽样和灰度量化两个方面的工作。被抽样的点称为像素,抽样的精度随图像的种类而不同。这样一来,所谓数字图像就是灰度值的二维数组。一个单色静止图像可以用一个二维的光强度函数 f(x,y )来表示,其中 x 与 y 表示空间坐标,而在任意点(x,y )的 f 值与在该点图像的亮度(或灰度)成正比。一个数字图像是图像 f(x,y)在空间坐标和亮度上都数字化后的图像。可将数字图像视作一个矩阵,矩阵行与列的值决定一个点,而对应的矩阵元素值就是该点的灰度。这种矩阵的元素就是像素,所对应的灰度就是像素值
4、。表1.1是以数据结构的观点进行分类的图像种类。即在光谱方向、空间方向、时间轴方向上增加维数的图像,可以用多个二维数组来表示。在这里,不管是一个数组还是其集合,总是要组成用计算机容易处理的形式。因此在传送和复制时,只要在计算机内部进行处理,就不会被破坏而能保持完好的再现性。这是数字处理的一大优点。表1.1 图像的种类种 类 形 式 备 注二值图像 f(x,y)0,1 文字,曲线,指纹等灰度图像 0f(x,y)2n1 通常的照片,n6 8 是标准的彩色图像 fi(x,y),iR,G,B根据三基色的表示多光谱图像 fi(x,y),i1,m遥感图像用,m 多为4 8立体图像 fL,fR 从左右视点得
5、到的一对图像,用于立体观测运动图像(时间序列图像)ft(x,y),tt1,tn动态分析,动画等早期在英文里一般用 picture 代表图像,随着数字技术的发展,现在用 image 代表离散化的数字图像。图像中每个基本单元叫做图像元素,简称像素(picture element) 。对于2-D图像,英文中常用 pixel 代表象素。对于3-D 图像,英文中常用 voxel 代表其基本单元,简称体素(volume element) 。1.2 数字图像处理1.2.1 数字图像处理的概念所谓数字图像处理(digital image processing) ,就是利用计算机对图像进行去除噪声、增强、恢复、
6、分割、提取特征等的理论、方法和技术。由于图像处理是利用计算机和实时硬件实现的,因此也被称为计算机图像处理(computer image processing) 。在计算机处理出现之前,图像处理都是光学、照相处理和视频信号处理等模拟处理。例如,在利用透镜或棱镜的光学演算中使用各种滤光镜,利用胶卷具有的特性曲线进行的处理,在电子回路中的视频信号的处理等,都属于这一范畴。在人们的日常生活中,图像处理已经得到广泛的应用。例如,利用指纹、虹膜、面部特征等进行身份识别;自动售货机钞票的识别;电脑成像技术等。而在医学领域,计算机图像处理已经成为疾病诊断的重要的手段,譬如显微镜照片、X 射线透视、X 射线CT
7、(Computer Tomograph,计算机断层摄像)等。1.2.2 数字图像处理的目的数字图像处理是利用计算机的计算,实现与光学系统模拟处理相同效果的过程。一般来说,数字图像处理具有如下的目的:提高图像的视觉质量,以达到赏心悦目的目的。例如,去除称之为噪声等图像质量的退化因素;改变图像的亮度、颜色;增强图像中的某些成份、抑制某些成份;对图像进行几何变换等,从而改善图像的质量,以达到各种想要的艺术效果。提取图像中所包含的某些特征或特殊信息,以便于计算机分析。如用作模式识别,计算机视觉的预处理等等。这些特征包括很多方面,如频域特性、纹理特性、灰度/颜色特性、边界/ 区域特性、形状/拓扑特性以及
8、关系结构等。对图像数据进行变换、编码和压缩,以便于图像的存储和传输。1.2.3 数字图像处理的内容要有效解决众多的图像处理应用问题,必须研究出专门的图像处理方法,大致上可以将这些问题及其数字图像处理方式归纳为以下几类。1. 图像获取、表示和表现(Image Acquisition, Representation and Presentation)该过程主要是把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像显示和表现出来。这一过程主要包括摄取图像、光电转换及数字化等几个步骤。2. 图像增强(Image Enhancement)图像增强是用来强调图像的某些特征,以便于作进一步的分析或显
9、示。当无法得知图像退化有关的定量信息时,可以使用图像增强技术较为主观地改善图像的质量。所以,图像增强技术是用于改善图像视感质量所采取的一种重要手段。它所完成的工作包括去除图像噪声,增强图像对比度等。例如,对比度的增强是用来使对比度低的图像更容易显现其特征,而低对比度的可能原因包括光线不足、图像感应器的动态范围不够以及在图像摄取时光圈设定错误等。图像增强的过程本身并没有增加原始资料所包含的信息,仅仅是把图像某些部分的特征更加强调罢了。图像增强的算法通常是交互式的,而且与所考虑的应用有着密切的联系。3. 图像恢复(Image Restoration)图像恢复是指在图像退化(图像品质下降)的原因已知
10、时,对图像进行校正,重新获得原始图像的过程。使图像降质的因素有很多,包括感应器或拍摄环境的干扰,感应器的非线性几何失真,没有对焦精确所造成的模糊,摄象机与物体之间相对运动所造成的模糊等。图像恢复最关键的是对每一种退化都需要建立一个合理的模型。退化模型和特定数据一起描述了图像的退化,因此恢复技术是基于模型和数据的图像恢复,其目的是试图将受污染或降质的图像带回到原本不受污染的状况下所应得的干净图像,产生一个等价于理想成像系统获得的图像。虽然图像恢复与图像增强都会造成视觉上较佳的感受,但后者更关心的是图像特征增强或抽取,而不是去除退化或污染。4. 图像重建(Image Reconstruction)
11、图像重建的工作是由几个一维的图像投影来重建出更高维的物体图像。它与图像增强、图像恢复等不同。图像增强和图像恢复的输入都是图像,处理后输出的结果也是图像。而图像重建则是指从数据到图像的处理,即输入的是某种数据,经过处理后得到的结果是图像。一个图像的取得是以平行的 X 光或者其他的放射穿透光束照射物体,并在物体的背面接收此投影,接着在同一平面上改变光束照射的角度以获得不同的投影,再以某些重建算法将这些投影组合成物体的一个横剖面图像。这种技术主要用于医学图像、雷达图像处理、天文学星象观测、地质研究及无损压缩等。5. 图像压缩(Image Compression)图像压缩的目的是降低代表数字图像所需要
12、的数据量,这样做的好处是可以减少图像传输时间以及存储空间。编码是实现图像压缩的重要手段。图像压缩编码主要是利用图像信号的统计特性以及人类视觉的生理学和心理学特性,对图像信号进行高效编码,即研究数据压缩技术,其目的是在保证图像质量的前提下压缩数据,以解决图像数据量大的矛盾。一般来说,图像编码的目的有三个:减少数据存储量。 降低数据率以减少传输带宽。 压缩数据量,便于特征提取,为后续识别作准备。从编码技术的发展来看,Kunt 提出了第一代、第二代的编码概念。第一代编码是以去除冗余为基础的编码方法,如 PCM、DPCM、 M、DCT、DFT、W-H 变换编码以及以此为基础的混合编码法。第二代编码法多
13、为20世纪80年代以后提出的,如 Fractal 编码法、金字塔编码法、小波变换编码法、模型基编码法、基于神经网络的编码法等等。这些编码方法有如下特点:充分考虑人的视觉特性。 恰当地考虑对图像信号的分解与表述。 采用图像的合成与识别方案压缩数据。6. 图像分割(Image Segmentation)图像分割就是把图像分成区域的过程。这是从处理到分析的转变关键,也是图像自动分析的第一步。图像中通常包含多个对象,图像处理为达到识别和理解的目的,几乎都必须按照一定的规则将图像分割成区域,每个区域代表被成像的一个部分。图像自动分割是图像处理中最困难的问题之一。人类视觉系统能将所观察的复杂景物中的对象分
14、开,并识别出每个物体,但对于计算机来说却是个难题。目前,大部分图像的自动分割还需要人工提供必须的信息来帮助识别,只有一部分领域开始使用。例如印刷字符自动识别(OCR) ,指纹识别等。7. 图像分析(Image Analysis)图像分析是试图从图像中分割、提取并描述某些特征,从而有利于计算机对图像的识别和理解,以产生有用的信息。图像处理应用的目标几乎都涉及到图像分析。要做图像分析,必须使计算机具有某种程度的智能。这些智能的特征包括:能从含有许多不相干细节的背景中找到所需的信息。能从范例中学习并将所学知识应用推广到其他状况中。能从不完整的资料中推断出完整的信息。1.3 图像工程1.3.1 图像工
15、程的内涵图像技术在广义上来说是各种与图像有关的技术的总称。目前人们主要研究的是数字图像,主要应用的是计算机图像技术。这包括利用计算机和其它电子设备进行和完成的一系列工作,以及为完成各种功能而进行的硬件设计及制作等方面的技术。计算机图像技术的历史可以追溯到1946年世界上第一台电子计算机的诞生,但在20 世纪50 年代计算机主要还是用于数值计算。到20世纪60年代,第三代计算机的研制成功,以及快速傅立叶变换算法的发现和应用,使得对图像的某些计算得以实际实现。20世纪 70年代,图像技术有了长足进步,而且第一本重要的图像处理专著(Rosenfeld 1976)也得以出版。进入 20世纪80年代,各
16、种硬件的发展使得人们开始处理3-D 图像。由于图像技术得到了极大的重视和长足的发展,人们需要对它们进行综合研究和集成应用,由此出现了图像工程。图像工程的概念在1982年首先提出,当时主要包括有关图像的理论技术,对图像数据的分析管理以及各种应用。图像工程的内容非常丰富,根据抽象程度和研究方法等的不同,可分为图像处理、图像分析和图像理解三个层次。换句话说,图像工程是既有联系又有区别的图像处理、图像分析及图像理解三者的有机结合,另外还包括它们的工程应用。1. 图像处理图像处理的重点是图像之间进行的变换。虽然人们常用图像处理泛指各种图像技术,但比较狭义的图像处理主要是对图像进行各种加工,以改善图像的视
17、觉效果并为自动识别打基础,或对图像进行压缩编码以减少所需的存储空间。2. 图像分析图像分析主要是对图像中感兴趣的目标进行检测和测量,以获得它们的客观信息,从而建立对图像的描述。如果说图像处理是一个从图像到图像的过程,则图像分析则是一个从图像到数据的过程。这里的数据可以是目标特征的测量结果,或是基于测量的符号表示,它们描述了目标的特点和性质。3. 图像理解图像理解的重点是在图像分析的基础上,进一步研究图像中各目标的性质和它们之间的相互关系,并得出对图像内容含义的理解以及对原来客观场景的解释,从而指导决策。如果说图像分析主要是以观察者为中心来研究客观世界,那么图像理解在一定程度上就是以客观世界为中
18、心,借助知识、经验等来把握整个客观世界。综上所述,图像处理、图像分析和图像理解是处在三个抽象程度和数据量各有特点的不同层次上。图像处理是比较低层次的操作,它主要在图像像素级上进行处理,处理的数据量非常大。图像分析则进入了中层,分割和特征提取把原来以像素描述的图像转变成比较简洁的非图像形式的描述。图像理解主要是高层操作,基本上是对从描述抽象出来的符号进行运算,其处理过程和方法与人类的思维推理有许多相似之处。1.3.2 相关学科和领域图像工程是一门系统地研究各种图像理论、技术和应用的交叉学科。从它的研究方法来看,它可以与数字、物理学、生物学、心理学、电子学、计算机科学等许多学科相互借鉴。从它的研究
19、范围来看,它与模式识别、计算机视觉、计算机图形学等多个专业相互交叉。图像工程的研究进展还与人工智能、神经网络、遗传算法、模糊逻辑等理论和技术有密切的联系。它的发展应用与医学、遥感、通信、文档处理和工业自动化等许多领域也是密不可分的。图像工程与计算机图形学(Computer Graphics) 、计算机视觉(Computer Vision) 、模式识别(Pattern Recognition)等有着密切的关系。图形学原本是指用图形、图表、绘图等形式来表达数据信息的科学。而计算机图形学研究的就是用计算机技术生成这些形式的理论、方法和技术,即由非图像形式的数据描述来生成逼真的图像。它既可以生成现实世
20、界中已经存在的物体的图形,也可以生成虚拟物体的图形,它和图像分析的对象和输出结果正好对调。从狭义上讲,模式识别指的是把基于特征的多维模式空间分成不同类别的识别理论。特别是指不依赖于图形和图像,适用于其他一般的模式分类的理论。模式识别和图形分析比较相似,只是前者试图把图像分解成可用符号较抽象地描述的类别。计算机视觉主要强调用计算机实现人的视觉功能,要用到图像工程三个层次的许多技术,目前的研究内容主要与图像理解相结合。1.4 数字图像处理的应用概括的说,数字图像处理技术的主要应用领域如下:通讯。包括图像传输、电视电话、电视会议等,主要是进行图像压缩甚至理解基础上的压缩。宇宙探测。由于太空技术的发展
21、,需要用数字图像处理技术处理大量的星体照片。遥感。航空遥感和卫星遥感图像需要用数字技术加工处理,并提取有用的信息。主要用于地形地质分析,矿藏探勘,森林、海洋、水利、农业等资源调查,环境污染监测,自然灾害预测预报,气象卫星云图处理以及地面军事目标的识别等。由于数据量庞大,因此寻求处理及分析这些图像的自动方法,特别是图像对比度增强、分割及图像识别的技术显得极为重要。生物医学领域中的应用。图像处理在这一领域的应用非常广泛,无论是临床诊断还是病理研究都大量采用图像处理技术。它的直观、无创伤、安全方便等优点备受青睐。图像处理首先应用于细胞分类、染色体分类和放射图像等。20世纪 70年代数字图像处理在医学
22、上的应用有了重大突破。1972年,X 射线断层扫描 CT 得到实用;1977年,白血球自动分类仪问世;1980年,人们实现了 CT 的立体重建。医学图像的种类包括 X 光图像、同位素图像、核磁共振图像、超声波图像、红外线图像以及显微图像等。对这些图像作对比度增强或伪彩色等的处理可帮助医生诊断疫病。工业生产中的应用。在生产线中对产品及其部件进行无损检测是图像处理技术的一个重要应用领域。这一领域的应用从20世纪70年代起取得了迅猛的发展,主要有产品质量检测;生产过程的自动控制;CAD 和 CAM 等。军事、公安等方面的应用。例如军事目标的侦察、制导和警戒系统、自动灭火器的控制及反伪装;公安部门的现
23、场照片、指纹、手迹、人像等的处理和辨识;历史文字和图片档案的修复和管理等。机器人视觉。机器视觉作为智能机器人的重要感觉器官,其主要任务是进行三维景物理解和识别。机器视觉主要用于军事侦察或处于危险环境的自主机器人;邮政、医院和家政服务的智能机器人;装配线工件识别、定位;太空机器人的自动操作等。科学可视化。图像处理和图形学的紧密结合,形成了科学研究领域新型的研究工具。例如考古学可用图像处理方法恢复模糊或其他降质状况的珍贵文物图像。视频和多媒体系统。电视制作系统中广泛使用图像处理、变换、合成;多媒体系统中静止图像和动态图像的采集、压缩、处理、存储和传输等。电子商务。图像处理技术在这一领域大有可为,如
24、身份认证、产品防伪、水印技术等。1.5 数字图像处理的发展方向目前图像处理面临的主要任务是研究新的处理方法,构造新的处理系统,开拓新的应用领域。需要进一步研究的问题有如下几个方面:在进一步提高精度的同时着重解决处理速度问题。加强软件研究,开发新的处理方法,特别是要注意移植和见解借鉴其他学科的技术和研究成果,创造出新的处理方法。加强边缘学科的研究工作,促进图像处理技术的发展。加强理论研究,逐步形成图像处理科学自身的理论体系。图像处理领域的标准化。图像处理技术未来发展方向大致可归纳为:图像处理的发展将围绕高清晰度电视的研制,开展实时图像处理的理论及技术研究,向着高速、高分辨率、立体化、多媒体化、智
25、能化和标准化方向发展。图像、图形相结合,朝着三维成像或多维成像的方向发展。硬件芯片研究。把图像处理的众多功能固化在芯片上,使之更便于应用。新理论与新算法的研究。近年来随着一些新理论的引入及新算法的研究,将会成为今后图像处理理论与技术的研究热点。例如小波分析(Wavelet ) 、人工神经网络(artificial neural networks) 、分形几何(Fractal) 、形态学(Morphology) 、遗传算法(Genntic Algorithms)等。随着科学技术的进步以及人类需求的不断增加,图像处理科学无论是在理论上还是实践上,都会取得更大的发展。MATLAB 图像处理基础2.2
26、.1 图像文件格式及图像类型1MATLAB 支持的几种图像文件格式:JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。BMP(Windows Bitmap):有1位、4 位、8位、24位非压缩图像,8位 RLE(Run length Encoded)的图像。文件内容包括文件头(一个 BITMAP FILEHEADER 数据结构) 、位图信息数据块(位图信息头 BITMAP INFOHEADER 和一个颜色表)和图像数据。PCX(Windows Paintbrush):可处理1位、4 位、8位、 16位、24位等图像数据。文件内容
27、包括文件头、图像数据和扩展色图数据。TIFF(Tagged Iamge File Format):处理1位、4 位、8位、24位非压缩图像,1位、4位、8位、24位 packbit 压缩图像, 1位 CCITT 压缩图像等。文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16 位索引图像,24位和48位真彩色图像。GIF(Graphics Interchange Format):任何1位到8 位的可交换的图像。HDF (Hierarchial Data Forma
28、t):有8位、24位光栅图像数据集。ICO(Windows Icon resource):有1位、4位、8位非压缩图像。CUR(Windows Cursor resource):有1位、4 位、8位非压缩图像。XWD(X Windows Dump):包括1 位、8位Zpixmaps,XYBitmaps,XYPixmmmaps 。RAS(Sun Raster image):有1 位 bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。PBM(Portable Bitmap) 。PGM(Portable Graymap) 。PPM(Portable Pixmap) 。2MATLAB 支
29、持五种图像类型,即二值图像、索引图像、灰度图像、RGB 图像和多帧图像阵列。有关它们的定义见下表2.1。表2.1 图像类型及其对应的像素数据类型图像类型Double 数据 uint8和 uint16数据二值图像图像为 mn 的整数矩阵,元素值范围0,1图像为 mn 的整数矩阵,元素值范围0,1索引图像图像为 mn 的整数矩阵,元素值范围0,p图像为 mn 的整数矩阵,元素值范围0,p-1灰度图像图像为 mn 的浮点数矩阵,元素值范围0,1图像为 mn 的整数矩阵,元素值范围0,255或0,65535RGB 图像图像为 mn3的浮点数矩阵,元素值范围0,1图像为 mn3的整数矩阵,元素值范围0,
30、255或0,65535其中,多帧图像阵列是由多帧图像组成的,每一帧图像可以为前四种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。cat 函数可以将具有相同尺寸的几个独立图像存成多帧文件。对于多帧图像也可以从中提取单帧。2.2.2 图像类型判断及转换1在 MATLAB 中如果要判断一个图像文件的类型,可使用如下指令:l isbw:若图像为二值图像,则返回真。l isgray:若图像为灰度图像,则返回真。l isind:若图像为索引图像,则返回真。l isrgb:若图像为 RGB 图像,则返回真。2在 MATLAB 系统中,要将一个类型的图像文件转换成另一个类型的图像文件,只需将前一个文
31、件的图像数据用 imread 读出,再用 imwrite 以适当的格式写到后一个图像文件中去即可。另外,要将灰度图像 I 转换成 RGB 图像,可运用 cat 指令。cat 函数可以把一些单一的图像合并成图像序列。在图像序列中每个图像需有相同的大小,如果是索引图像,色图也要一致。此外,MATLAB 还提供了若干函数,用于图像类型的转换。这些函数有:l dither:用抖动法( dithering)转换图像。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把 RGB 图像转换成索引图像
32、或把灰度图像转换成二值图像。l gray2ind:灰度图像或二值图像向索引图像转换。l grayslice:设定阈值将灰度图像转换为索引图像。l im2bw:设定阈值将灰度、索引、 RGB 图像转换为二值图像。l im2double:将图像数组转换为 double 型。l im2uint8:将图像数组转换为 uint8型。l im2uint16:将图像数组转换为 uint16型。该函数不支持二值图像序列的转换。l ind2gray:索引图像向灰度图像转换。l ind2rgb:索引图像向 RGB 图像转换。l mat2gray:将一个数据矩阵转换为灰度图像。l rgb2gray:RGB 图像向灰
33、度图像转换或将彩色色图转换成灰度色图。l rgb2ind:RGB 图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。l im2java:一般图像向 Java 图像转换。l label2rgb:标志图像向 RGB 图像转换。2.2.3 图像的查询及读写在 MATLAB 中要查询一个图像文件的信息,只要用 imfinfo 指令加上文件及其完整路径名即可。函数调用格式为:info = imfinfo(filename,fmt)info = imfinfo(filename)参数 fmt 对应于所有图像处理工具箱中所有支持的图像文件格式。MATLAB 提供了两个重要的用于图像文件的
34、读写的指令,分别是从图像文件中读取数据的 imread,以及将数据写入到图像文件中的 imwrite。1imread 的常见调用格式为:A = imread(filename,fmt)其作用是将文件名用字符串 filename 表示的,扩展名用 fmt 表示的图像文件中的数据读到矩阵 A 中。如果 filename 所指的为灰度级图像,则 A 为一个二维矩阵;如果 filename所指的为 RGB 图像,则 A 为一个 mn3的三维矩阵。Filename 表示的文件名必须在MATLAB 的搜索路径范围内,否则需指出其完整路径。imread 的其他几种重要的调用格式为:X,map = imrea
35、d(filename.fmt) = imread(filename) = imread(URL,) = imread(,idx) (CUR,ICO and TIFF only) = imread(,frames,idx) (GIF only) = imread(,ref) (HDF only) = imread(,BackgroundColor,BG) (PNG only)A,map,alpha = imread() (ICO,CUR and PNG only)上面一些参数的含义如下:idx 是指读取图标(cur、ico、tiff )文件中第 idx 个图像,默认值为1。 frame,idx
36、是指读取 gif 文件中的图像帧,idx 值可以是数量、向量或all 。ref 是指整数值。alpha 是指透明度。2imwrite 的常用调用格式为:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(,filename)imwrite(,Param1,Val1,Param2,Val2)其中 imwrite(,Param1,Val1,Param2,Val2)可以让用户控制 HDF、JPEG、TIFF 等一些图像文件格式的输出特性。在 MATLAB 中,默认的保存类型是 uint8。由于 PNG 和 TIFF 格式支持16位的图像
37、,所以保存这类图像时,保存类型就是 uint16。2.2.4 图像的显示显示图像的最基本的手段是使用 image 函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc 函数也具有 image 的功能,所不同的是imagesc 函数还自动将输入数据比例化,以全色图的方式显示。imshow 函数比 image 和 imagesc 更常用,它能自动设置句柄图像的各种属性。imshow 可用于显示各类图像。对于每类图像,调用方法如下:l imshow filename:显示图像文件。l imshow(BW):显示二值图像,BW 为黑白二值图像矩阵。l imshow(X,
38、map):显示索引图像,X 为索引图像矩阵,map 为色彩图示。l imshow(I):显示灰度图像, I 为二值图像矩阵。l imshow(RGB):显示 RGB 图像,RGB 为 RGB 图像矩阵。l imshow(I,low high):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中low high用于定义待显示数据的范围。有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB 还提供了一些用于进行图像的特殊显示的函数。l colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。l getimage:获取图像数据。
39、l immovie:将多帧索引图像制作成连续图像格式。其调用格式为:mov = immovie(D,map)不过这种功能只对索引图像有效,其中 D 为多帧索引图像阵列,map 为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。l montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。l movie:播放多帧连续图像。l subimage:在一个图形区域内显示多个图像。l truesize:调整图像显示的尺寸。l warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5 的一个强大
40、功能是能将平面图像显示在空间三维曲面上。这是由 warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。l zoom:将图像或二维图形进行放大或缩小显示。zoom 本身是是一个开关键,zoom on 用于打开缩放模式,zoom off 用于关闭该模式, zoom in 用于放大局部图像,zoom out 用于缩小图像。至于多个图像的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可以用figure 指令来实现;在同一个图形窗口显示多图,可以用 subplot 来实现。第三章 图像运算3.1 图像的点运算点运算将输入图像映射为输出图像,输出图像每个像素点的灰
41、度值仅由对应的输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点运算因其作用性质,也被称为对比度增强、对比度拉伸或灰度变换。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。点运算实际上是灰度到灰度的映射过程。点运算不会改变图像内像素点之间的空间关系。设输入图像为 A(x, y),输出图像为 B(x, y),则点运算可表示为:B(x, y) = f A(x, y) (3-1)点运算可完全由灰度变换(gray-scale transformation)函数 s=f (r)决定,后者描述了输入灰度级与输出灰度级之间的映射关系。图像的点运算
42、分为线性点运算和非线性点运算两种。3.1.1 线性点运算线性点运算是指灰度变换函数 f 为线性函数时的运算。如图3.1,当 a1时,输出图像对比度增大;当 a1时,输出图像对比度降低;当a1,b 0时,输出图像就是输入图像的简单复制;当 a1,b0时,仅使输出图像的灰度值上移或下移,其效果是使整个图像更亮或更暗。如果 a 为负值,暗区域将变亮,亮区域将变暗,点运算完成了图像求补。除了调节对比度以外,还有一种典型的线性点运算的应用就是灰度标准化。设灰度图像为 IWH,其中 W 表示图像宽度,H 表示图像的高度,那么灰度图像的平均灰度和方 图3.1 线性函数差由如下计算公式得到:平均灰度: (3-
43、2)方差:(3-3)可以将其变换为具有相同均值和方差的变换函数(线性映射) ,其形式如下:(3-4)其中 0和 u 0为给定的变换参数。灰度标准化可以用来生成一些常用的平均模型。3.1.2 非线性点运算非线性点运算对应于非线性映射函数,典型的映射包括平方函数、对数函数、截取函数(窗口函数) 、域值函数、多值量化函数等。阈值化处理是最常用的一种非线性点运算,它的功能是选择一阈值,将图像二值化,然后使用生成的二进制图像进行图像分割及边缘跟踪等处理。直方图均衡化也是一种非常常用的非线性点运算。它是指将一个已知灰度分布的图像使用某种非线性灰度变换函数进行计算,使运算结果变成一幅具有均匀灰度分布的新图像
44、。经过直方图均衡化的点运算处理后,实际的直方图将呈现参差不齐的外形,这是由于灰度级的可能个数是限造成的。在一些灰度级处可能没有像素,在另外一些灰度级处则像素很拥挤。点运算的 MATLAB 实现:I=imread(rice.png);rice=double(I);rice2=rice*0.5+50;J=uint8(rice2);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);MATLAB 在数字图像处理中的应用21 几个基本术语在运用 MATLAB 进行数字图像处理之前,我们必须明确几个基本术语:1)位图:是根据图像的尺寸和分辨率创建和保存的图
45、像,由扫描输入。2)矢量图:使用专用软件绘制的,以数学方程式的方式保存的图像,所以矢量图的清晰度与分辨率无关。3)象素:是图像在计算机显示中的度量单位,可以变化,可大可小。4)分辨率:是用于度量图像在显示器中清晰程度的一个参数,分辨率越高,图像越清晰。分辨率是与象素相关的,即单位长度上的象素数就是分辨率。由此可知,分辨率越高,象素的几何尺寸就越小。5)图像文件的大小:指一幅图像在计算机中保存时所占用的磁盘空间,其大小与所用的颜色模式有关。灰度图像中的每一个灰度象素只占用一个字节(8位) ,RGB 图像中红、绿、蓝各占用一个字节。另外,图像文件的大小也直接与其分辨率有关,原因是当分辨率增加时,一
46、幅图像所包含的象素量急剧增加。6)句柄:通俗地说就是对象的代号或标志,它能使计算机方便地从众多对象中找到所需要的对象并对之加以相应的操作。MATLAB 中的句柄图形对象包括轴、文本、菜单、控制框、图像等。2.2 MATLAB 图像文件格式简介针对 MATLAB 的数字图像处理功能,我们讨论它可以处理的几种图像文件格式:A)PCX 格式。可处理1、4 、 8、16、24 位等图像数据。文件内容包括文件头 、图像数据、扩展调色板数据。B)BMP 格式,即位图文件,整幅图可视为一个数字矩阵。它包括1、4、8、24位非压缩图像,8位 RLE(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据
47、。选择 BMP 格式保存一幅灰度模式图像时,可选择以 Windows 格式保存。而且在选中4位或8位位图时,还可选压缩(RLE )项,在用 RLE 方式压缩保存后图像将毫无损失。这是用得最广的图像格式之一,在本文中都对这种格式的图像进行操作。C)HDF 格式。有8位,24位光栅图像数据集。D)JPEG 格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩色图像的压缩标准。它实际上定义了3种编码系统:a基于 DCT 的有损编码基本系统,可用于绝大多数压缩场合;b用于高压缩比、高精度或渐进重建应用的扩展编码系统;c用于无失真应用场合的无损系统。JPEG 没有规定文件格式、图像分辨率或
48、所用的彩色空间模型,这使它就有可能适用于 MATLAB。D)TIFF 格式。处理 1、4、8、24位非压缩图像,1 、4、8、24 位 packbit 压缩图像,1位 CCITT 压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和图像数据四部分。它是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描仪及在Windows、Macintosh 平台上常用的版面设计软件都支持 TIFF 文件格式。以这种格式保存的图像文件结构比较复杂,在不压缩存放时文件比较大。E)XWD 格式。1、8 位 Zpixmaps, Xybitmaps, 1位 XYPixmaps。F)TGA 格式。处理1、4 、8、16、24位非压缩图像和行程编码图像。文件包由5个固定长度字段和3 个可变长度字段组成。2.3 MATLAB 图像文件类型根据数据矩阵和图像象素点颜色的匹配关系,MATLAB 中的图像可分为三类:索引图像、灰度图像和 RGB 图像。1)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在0,1 内。2)灰度图像:它的数据矩阵中的