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