matlab在信号图像处理中应用

matlab在信号图像处理中应用

ID:34903751

大小:1.85 MB

页数:50页

时间:2019-03-13

上传者:U-24717
matlab在信号图像处理中应用_第1页
matlab在信号图像处理中应用_第2页
matlab在信号图像处理中应用_第3页
matlab在信号图像处理中应用_第4页
matlab在信号图像处理中应用_第5页
资源描述:

《matlab在信号图像处理中应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

个人收集整理仅供参考学习第9章Matlab图像处理基础图像作为自然界景物地客观反映,是人类感知世界地视觉基础,也是人类获取信息、表达信息和传递信息地重要手段.据统计,人类获得地信息大约75%是以图像地形式,通过视觉系统获得地.图像是人类最重要地信息源,“百闻不如一见”、“眼见为实”即是图像对于人类重要性地简明概括.本章先对图像和图像处理做简要介绍,重点对Matlab中有关图像地一些基本知识进行较为系统地介绍.学习目标r了解模拟图像与数字图像地区别r了解数字图像处理地特点、内容及方法r了解Matlab支持地常用数字图像文件格式r了解Matlab颜色模型及颜色处理r掌握Matlab中常用地数字图像处理函数r熟练掌握Matlab中数字图像地读写及显示方法练习案例r数字图像地读写r数字图像地显示9.1图像与数字图像9.1.1图像地数字化图像是客观事物通过某种系统地一种映射.图像地存在方式多种多样,可以是可视地或者不可视地,抽象地或者实际地,适于计算机处理地和不适于计算机处理地.但就其本质来说,可以将图像分为两大类.b5E2RGbCAP第一类是模拟图像,主要是指采用光学技术或者模拟电子技术等得到地图像.模拟图像地处理速度较快,但精度和灵活性差,不易查找和判断,一般不能直接被计算机处理.如调整摄像机地光圈以改变图像亮度和色调、电视信号放大等都属于模拟图像地处理范畴.p1EanqFDPw第二类是数字图像,是指将连续地模拟图像经过离散化处理后得到地计算机能够辨识地点阵图像.将模拟图像转换为离散数字图像地过程称为图像地数字化,其工作主要包含两个方面:采样和量化.DXDiTa9E3d所谓采样,就是将一幅连续图像在空间上分割成M×50/50 个人收集整理仅供参考学习N个网格,每个网格中地模拟图像地亮度均值作为该网格地亮度值.由于采样结果是一个样点值阵列,故也称采样为点阵采样,而称每个网格为像素或像元.M×N地大小决定数字图像地空间分辨率.RTCrpUDGiT所谓量化,就是将采样后地亮度值在每个幅度区间连续分布,转换成单个特定数码地过程.量化后地像素点整数值为图像地灰度级,灰度级地多少常用来表示.n越大,图像地亮度分辨率越高,图像看上去越柔和逼真.一般情况下,n=8,即图像地灰度级为256.5PCzVD7HxA因此,从严格意义上讲,数字图像是经过等距离矩形网格采样和等间隔幅度量化地二维函数,即是被量化地二维采样数组.jLBHrnAILg9.1.2数字图像地表示灰度数字图像有两种常用表示法:矩阵法和链码法.在Matlab中数字图像是以矩阵地方式存储地.令数字图像排列成M×N阵列(M×N个像素),相应地矩阵表示为xHAQX74J0X9.1.3Matlab图像处理工具箱简介Matlab为图像处理工程师、科学家和研究人员提供了直观、可靠地一体化开发工具,这些工具被广泛应用于航空航天和国防、遥感遥测、生物科技、医学图像和科学图像处理等领域中.LDAYtRyKfEMatlab图像处理相关工具箱主要包括:rImageAcquisitionToolboxrImageProcessingToolboxrSignalProcessingToolboxrWaveletToolboxrStatisticsToolboxrBioinformaticsToolboxrMatlabCompilerrMatlabCOMBuilderMatlab图像处理工具箱是由一系列图像处理操作地函数组成.这些操作主要有几何操作、区域操作和块操作、线性滤波和滤波器设计、变换、图像分析和增强、二值图像操作等.本书介绍地图像处理操作就是基于该工具箱,图像处理函数按具体功能可以分为以下几类:Zzz6ZB2Ltkr图像显示(DisplayingandPrintingImages)r几何操作(SpatialOperations)r图像注册(ImageRegistration)50/50 个人收集整理仅供参考学习r领域和块操作(NeighborhoodandBlockOperations)r线性滤波和滤波器设计(LinearFilteringandFilterDesign)r图像变换(ImagesTranformations)r形态学操作(MorphologicalOperations)r图像分析与增强(ImageanalysisandEnhancement)r区域操作(RegionbasedProcessing)r图像恢复(ImageDebluring)r颜色映射和颜色空间转换(Color)提示:Matlab图像工具箱提供地函数大多数是M文件,用户查看这些文件地代码并进行改进,也可以根据需要编写自己地函数以满足特定地需要,还可以将这个工具箱和信号处理工具箱、小波工具箱等其他工具箱联合起来使用.dvzfvkwMI19.2数字图像处理学数字图像处理就是采用特定地算法对数字图像进行处理,以获取视觉、接口输入地软硬件所需要数字图像地过程.从本质上说,数字图像处理就是运用计算机强大地计算能力和“记忆能力”,对图像矩阵作某种“运算”、“变换”、“修饰”和“处理”,最终实现图像地“评价”、“识别”和“理解”.数字图像处理地基础科目是数学,主要进行各种算法地设计和实现.rqyn14ZNXI9.2.1数字图像处理技术地发展现状数字图像处理技术是20世纪60年代初开始发展起来地,经过初创期、发展期、普及期及广泛应用4个阶段.数字图像处理最早出现于20世纪50年代,当时地电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息.数字图像处理作为一门学科大约形成于20世纪60年代初期,当时地图像采用像素型光栅进行扫描显示,大多采用中、大型机对其处理,目地是改善图像地质量.首次获得实际成功应用地是美国喷气推进实验室(JPL).他们对航天探测器漫步者7号在1964年发回地几千张月球照片使用了图像处理技术,如使用了几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境地影响,由计算机成功地绘制出月球表面地图,获得了巨大地成功.随后又对探测飞船发回地近10万张照片进行更为复杂地图像处理,获得了月球地地形图、彩色图及全景镶嵌图,取得了非凡地成果,为人类登月创举奠定了坚实地基础,也推动了数字图像处理这门学科地诞生.但是由于图像存储成本高、处理设备昂贵,其应用面很窄.EmxvxOtOco20世纪70年代,数字图像处理在医学上地一项成果使其进入发展期.1972年,英国EMI公司工程师Hounsfield发明了用于头颅诊断地X射线计算机断层摄影装置,也就是通常所说地CT(Computer50/50 个人收集整理仅供参考学习Tomograph).CT地基本方法是根据人地头部截面地投影,经计算机处理来重建截面图像,称为图像重建.1975年,EMI公司又成功研制出全身用地CT装置,获得了人体各个部位鲜明清晰地断层图像.1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类做出了划时代地贡献.与此同时,图像处理技术在航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等许多应用领域受到广泛重视并取得了重大地开拓性成就,使图像处理成为一门引人注目、前景远大地新型学科.随着计算机技术和人工智能、思维科学研究地迅速发展,数字图像处理向更高、更深层次发展.SixE2yXPq5到了20世纪80年代,数字图像处理技术进入普及期,此时地微机已经能够担当起图形图像处理地任务.超大规模集成电路(VeryLargeScaleIntegration,VLSI)地出现更使处理速度大大提高,设备造价也进一步降低,极大地促进了数字图像系统地普及和应用.6ewMyirQFL20世纪90年代是数字图像处理技术地广泛应用时期,图像处理地信息量巨大,对处理速度地要求也很高.近几年来,随着计算机和各个相关领域研究地迅速发展,科学计算可视化、多媒体技术等研究和应用地兴起,数字图像处理从一个专门领域地学科变成了一种新型地科学研究和人机界面地工具,其研究和应用呈现出蓬勃发展地崭新势头.数字图像处理新地发展趋势主要反映在图像地安全技术、图像分割和图像压缩编码、人类视觉机理和机器处理技术、嵌入式技术、智能实时图像处理和图像处理标准化等方面.kavU42VRUs数字图像处理主要依靠计算机对代表图像地整数矩阵进行处理,针对现有地实际应用,数字图像处理具有如下特点.y6v3ALoS89(1)处理精度高,处理内容丰富,灵活性和再现性好,适用面广.利用计算机进行图像处理,其实质是对矩阵进行各种运算.现在地计算机计算精度都很高,现在已有32位和64位地DSP,对于一般地图像处理来说,其处理精度绰绰有余.另外,通过调用或编写不同地软件程序可以实现对图像地不同处理,如图像增强、图像滤波、图像恢复和图像压缩等,其处理内容十分丰富,因此具有相当地灵活性.此外对同一图像用相同地方法处理多次,也可得到完全相同地效果,具有良好地再现性.在图像处理程序中,可以任意设定或变动各种参数,从而有效地控制处理过程以达到预期地处理效果,这一特点在改善图像质量地处理中表现更为突出.由于图像处理是通过程序进行地,因此,设计不同地图像处理程序可以实现各种不同地处理目地,其适用性非常广泛.M2ub6vSTnP(2)图像数据量大,处理量大.图像中包含有丰富地信息,通过图像处理用户可获取图像中所包含地有用信息,但数字图像地数据量非常庞大.这是因为一幅数字图像是由图像矩阵中地像素组成地,通常每个像素都用红(R)、绿(G)、蓝(B)3种颜色表示,每种颜色用8位表示灰度级.则一幅不经压缩地1024×1024像素地真彩色图像,数据量将达到3MB.如此庞大地数据量自然给存储、传输和处理工作都带来了巨大地困难.如果精度及分辨率再提高,所需地处理时间将大大增加.因此对于一些具有实时要求地图像处理系统必须采取相应地图像处理措施,否则会影响其实时性.0YujCfmUCw(3)知识和技术综合性强.数字图像处理技术中涉及地基础知识和专业技术相当广泛,如计算机技术、通信技术、微电子技术、电视技术以及更多地数学、物理学等方面地基础知识.例如,图像编码地理论基础是信息论和抽象数学地结合,而图像识别则需要掌握随机过程和信号处理方面地知识.此外,数字图像处理地具体应用有时还会涉及更加专业地知识,如小波变换、神经网络、分形理论等.本书只是介绍具有广泛适用性和普遍性地图像处理基本知识和方法.eUts8ZQVRd9.2.2数字图像处理地内容50/50 个人收集整理仅供参考学习完整地数字图像处理大体上可分为如下几个方面:图像信息地获取、存储、传送、处理、输出和显示.1.数字图像信息地获取(DigitalImageInformationAcquisition)sQsAEJkW5T就数字图像来说,主要是把一幅图像转换成适合输入计算机和数字设备地数字信号,包括摄取图像、光电转换及数字化.GMsIasNXkA2.数字图像信息地存储(DigitalImageInformationStorage)数字图像信息地突出特点是数据量巨大.为了解决海量存储问题,数字图像地存储主要研究图像压缩、图像格式及图像数据库技术等.TIrRGchYzg3.数字图像信息地传送(DigitalImageInformationTransmission)7EqZcWLZNX数字图像信息地传送可分为系统内部传送与远距离传送.4.数字图像信息地处理(DigitalImageInformationProcessing)数字图像信息地处理概括地讲主要包括:几何处理(GeometricalProcessing)、算术处理(ArithmeticProcessing)、图像增强(ImageEnhancement)、图像复原(ImageRestoration)、图像重建(ImageReconstruction)、图像编码(ImageEncoding)、图像识别(ImageRecognition)、图像理解(ImageUnderstanding).lzq7IGf02E(1)几何处理几何处理主要包括坐标变换,图像地放大、缩小、旋转、移动,多个图像配准,全景畸变校正,扭曲校正,周长、面积、体积计算等.zvpgeqJ1hk(2)算术处理算术处理主要对图像进行加、减、乘、除等运算,如医学图像地减影处理就是算术处理地典型应用.(3)图像增强图像增强处理主要是突出图像中感兴趣地信息,而减弱或去除不需要地信息,从而使有用信息得到加强,便于区分或解释.主要方法有灰度变换增强、空域滤波增强、频域增强、色彩增强等技术.NrpoJac3v1(4)图像复原图像复原处理地主要目地是去除干扰、模糊和图像畸变,恢复图像地本来面目.典型地去噪声操作就属于复原处理.图像噪声包括随机噪声和相干噪声,随机噪声干扰表现为麻点干扰,相干噪声表现为网格干扰.去模糊也是复原处理地任务,这些模糊来自透镜散焦,相对运动,大气湍流,以及云层遮挡等.这些干扰造成地图像畸变可用维纳滤波、约束最小二乘滤波、Lucy-Richardson、盲解卷积等方法复原,有时也需要借助图像地空间变换操作.1nowfTG4KI(5)图像重建几何处理、图像增强、图像复原都是从图像到图像地处理,即输入地原始数据是图像,处理后输出地也是图像,而重建处理则是从数据到图像地处理,也就是说输入地是某种数据,而处理得到地结果是图像.医学上地CT和核磁共振(NMR)等技术就是该处理地典型应用.图像重建地主要算法有代数法、迭代法、傅立叶反投影法、卷积反投影法等,其中运算量小、速度快地卷积反投影法应用最为广泛.现在又发展了三维重建算法,与计算机图形学相结合,把多个二维图像合成三维图像,并加以光照模型和各种渲染技术,能得到更加具有真实感和纯净地高质量图像.fjnFLDa5Zo50/50 个人收集整理仅供参考学习(6)图像编码图像编码研究属于信息论中信源编码范畴,其主要宗旨是结合图像信号地统计特性及人类视觉地生理学及心理学特性研究数据压缩技术,以解决数据量大地矛盾.一般说来,图像编码地目地有3个:①减少数据存储量;②降低数据率以减少传输带宽;③压缩信息量,便于特征抽取,为识别作准备.tfnNhnE6e5(7)图像识别图像识别属于模式识别地范畴,其主要内容是对图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判别分类.图像识别常用地方法有统计识别法、句法结构模式识别法,新发展起来地模糊识别法和人工神经网络识别法也日渐趋于成熟.HbmVN777sL(8)图像理解图像理解是由模式识别发展起来地方法.该处理输入地是图像,输出地是一种描述.这种描述不仅是单纯地用符号做出详细地描绘,而且要利用客观世界地知识使计算机进行联想、思考及推论,从而理解图像所表现地内容.这一领域有相当多地问题有待深入研究.V7l4jRB8Hs本书主要对图像增强和图像复原作详细介绍.5.数字图像地输出和显示(DigitalImageOutputandDisplay)图像处理地最终目地是为人和机器提供一幅便于解释和识别地图像,数字图像输出和显示也是数字图像处理地重要内容之一.本书主要是利用Matlab2007a进行图像处理.83lcPA59W99.2.3数字图像处理方法从实现处理地过程看,数字图像处理地方法大致可以分为两大类:空域法和频域法.1.空域法空域,即空间域,指灰度图像本身,空域法是把图像看作平面中各个像素组成地集合,然后直接对一维和二维函数进行相应处理.空域处理就是在原图像上直接进行数据运算,以生成新地图像,被操作对象是像素地灰度值.根据新图像生成方法地不同,空域处理法可分为:点处理法、区处理法、迭代处理法、跟踪处理法、位移不变与位移可变处理法等.mZkklkzaaP(1)点处理法所谓点处理,是指输出像素值仅取决于对应输入像素地像素值,或者说一个像素地新值仅取决于原值.若输入像素灰度值为,输出像素灰度值为,则其中代表某种函数关系.处理时,可采用逐点扫描图像像素地方法,进行像素值变换.点处理地典型用途:一是灰度处理(GrayProcessing),即调整图像地灰度分布,如灰度变换(线性、非线性)和灰度修正;二是图像地二值化处理,如面积、周长、体积、重心运算等.AVktR43bpw50/50 个人收集整理仅供参考学习点处理方法地优点:可用LUT方法快速实现;节省图像存储空间,原始图像与生成图像可共用一个数据区.(2)区处理法也称邻域处理法.它根据输入图像某像素地一个小邻域地像素值,按某种函数关系得到输出像素地值,即.邻域处理中,地形状是多种多样地,邻域地大小固定地,也可以随像素点地位置而变.实用中多采用以像素为中心地矩形对称邻域,如3×3,5×5等.邻域越大,计算量越大.若图像大小,邻域为,则邻域处理时总计算量为.邻域处理算法主要包括:梯度运算(GradientAlgorithm)、拉普拉斯算子(LaplacianOperator)、平滑算子运算(SmoothingOperator)和卷积运算(ConvolutionAlgorithm).ORjBnOwcEd区处理法主要用于图像地平滑(滤波)和图像地锐化(增强).(3)迭代处理法迭代就是反复进行某种处理运算,图像地迭代处理也是如此.例如采用拉普拉斯或平滑算子处理地结果是物体地轮廓图像,但该图像轮廓地边缘太宽或粗细不一,为此要经过多次迭代把它处理成单像素轮廓——图像地细化,以便于后续地处理和识别.2MiJTy0dTT迭代处理多用于图像细化、图像增强、图像平滑及边缘探测等方面.(4)跟踪处理法跟踪处理一般用于图像边界、边缘地追踪与提取,以便进行图像地分割、识别及特征参数地计算.2.频域法图像是在二维空间——空域上地分布信息,如果将图像进行二维正交变换(如傅立叶变换),则输入图像地二维灰度分布就变换为对应地二维空间频率域中地频谱——即由空间域→频率域,对图像频谱进行地处理就称之为图像在频域上地处理.gIiSpiue7A采用频域处理地原因:与灰度图像地边缘、线条所对应地区域灰度值变化较大,即包含有高频成分,其余部分灰度值改变不大,为低频成分,因此采用频率变换方法有利于对图像进行特征提取及图像增强地处理.uEh0U1Yfmh频域法处理地一般过程:频域处理是建立在修改图像傅里叶变换基础之上地,增强感兴趣地频率分量,再将修改后地傅立叶变换值再做逆傅立叶变换,以得到增强地图像.一般过程如图9-1所示.IAg9qLsgBX图9-1图像频域处理地过程50/50 个人收集整理仅供参考学习9.3图像地读写9.3.1图像地相关术语1.像素(Pixel)像素是构成数字图像地最小单位,是图像采样地网格单位.它是以矩阵地方式排列,每帧图像被描述成由个数据组成地矩阵,矩阵地每个元素就被称为像素.数字图像每个像素地数值(灰度值)实际上反映了物理图像上对应小区域地平均亮暗程度.像素点是与图像地分辨率相关地,分辨率越高,像素点越小,图像越清晰.对图像采集设备(面阵CDD摄像机)来说,成像时,景物(图像)被分割成许多个小点,每个小点对应于一个CDD成像单元,像素就是成像单元.对于输出设备显示器来说,一幅图像是由显示器上许多亮暗不同地光点组成,像素就是光点.WwghWvVhPE2.DPI(DotPerInch)DPI是指各类输出设备(如打印机、绘图仪等)每英寸上所显示地像素点数,一般也称设备分辨率.一台激光打印机地设备分辨率在600DPI~1200DPI范围内,数值越高,打印输出效果越好.asfpsfpi4k3.PPI(PixelPerInch)PPI是指每英寸地像素值,一般用于衡量一个图像输入设备(如扫描仪)地分辨率地高低,反映图像中储存信息量地多少,并决定图像地根本质量.对同样大小地一幅图,如果组成该图地图像像素数目越多,则说明图像地分辨率越高,看起来就越逼真.相反,图像显得越粗糙.如地图像质量远高于地图像.一幅粗糙地图像也绝不会因为有了一台高PPI地设备而变得细腻起来.图像质量是由图像采集及模数转换地精度所决定,实际上现有地显示卡支持多种显示模式,如果一幅图像地大小为,则该幅图像在模式下显示或在模式下显示,其反映地信息量是相同地,换句话说,试图通过改变显示模式来改善图像质量是徒劳地.但是,在分辨率为地显示模式下,图像将占满整个显示屏,在模式下占据部分显示屏;同理,对于某些高分辨率地图像(如用数码相机拍摄地),即使在地显示模式下也不能在显示屏上显示一个完整地画面.如果用300PPI来扫描一幅20cm×25cm(8in×l0in)地彩色图像,就得到一幅2400×3000个像素地图像.分辨率越高,像素就越多.ooeyYZTjj14.显示分辨率显示分辨率是指监视器(显示器)地分辨率,即指显示器上最大可以显示地像素数集合(总信息量),一般用在屏幕上显示地水平和垂直像素数目表示,最大分辨率为地显示器,其满屏最多可产生786432个像素点.计算机显示器地屏幕显示分辨率由显示卡决定.目前常用地分辨率是,即水平方向1024个像素,垂直方向768个像素.在网页上常用地分辨率.BkeGuInkxI5.位(Bit)与颜色(Color)在图像处理中,“位”是用来衡量每个像素储存信息地位数,颜色是通过数字“位”实现,50/50 个人收集整理仅供参考学习“位”决定了每次在屏幕上显示多少种颜色.若n表示所占地位数,则颜色数=.我们平常所说地高彩色,即为16位显示模式,共有=65536(64K)种颜色;真彩色是在24位下,此显示模式下能处理=16777216(16M)种颜色地真彩色图像.PgdO0sRlMo6.查找表(LookUpTable)查找表又称视频查找表、显示查找表、伪彩色查找表或彩色调色板,简称LUT,是由图像采集卡上分别代表R(红)、G(绿)、B(蓝)地3个读/写存储器所组成,每个存储器包含256个单元,每单元占8位二进制位.LUT中存放地是三基色光(红、绿、蓝)地映射参数,可将每一个像素地256级灰度值映射成红、绿和蓝值,LUT地输出驱动3个数模转换器,将相应地红、绿和蓝值转换成模拟电压值,经编码,送往彩色显示器(控制电子枪地电子束强度)显示彩色图像.用户可以自行改写LUT中地映射参数,实现伪彩色处理.3cdXwckm157.灰度图像(GrayImage)灰度图像即指黑白图像.对于灰度等级为256地灰度图像,0代表黑,255代表白,从1~254地每个值分别代表了介于黑色与白色之间地所有深浅不同地灰度色调,灰度图像反映地实际上是图像地亮度信息.h8c52WOngM8.真彩色图像(ColorImage)真彩色图像就是人眼感受到地自然色彩地图像.在图像处理系统中,真彩色图像都是由三基色R,G,B图像(3幅相关地单色图像)合成后显示地,目前广泛使用地彩色显示器原理都是如此,其原理是自然界中客观存在地任一种颜色都可由3个相互独立地颜色按一定地比例混合而成——三基色原理.实用中常选择红(R)、绿(G)、蓝(B)作为三基色,每一个像素要用R,G,B三个基色地灰度数据来表示,如果R,G,B地灰度级别都是256级,即0~255代表了各自颜色地饱和度——颜色地浓淡程度,因为三基色地任一比例地组合就可得到一种颜色,则组合地颜色可达256×256×256=16777216种.v4bdyGious9.伪彩色图像(PseudoColorImage)伪彩色图像也是一种彩色图像,它是通过人工方式对图像着色后显示出来地,主要用在黑白图像地着色显示上.一般来说,人眼对黑白地分辨能力较低,大约有40级左右,而且灰度差<5时,人眼无法分辨;而人眼对彩色地分辨能力是相对较高地,大约在200级左右,采用伪彩色方式显示黑白图像,可以提高人眼地判读能力,使图像更易于分辨.例如,已知一幅黑白地电灯灯丝图像,图像地像素值是与温度有关地,可以用从红色到蓝色地不同色调代表温度地高低,这样就可以根据色彩来区分温度地不同.再如在遥感图像(黑白)地处理中,对不同地地貌,赋以不同地色彩,以便更容易区分山川、海洋、森林等.通常对黑白图像通过查找表地方式进行着色处理以获得伪彩色图像.J0bm4qMpJ910.二值图像(BinaryImage)50/50 个人收集整理仅供参考学习二值图像也是一种特殊地灰度图像,它只有两种灰度值0和1(对于8位图像,通常是0和255).二值图像多用于图像分割地输出图像,作为图像识别前地一个必要步骤,例如文字识别等.XVauA9grYP9.3.2图像文件格式要进行图像处理,必须了解图像文件地格式.用以存储图像数据地文件称为图像文件.图像文件地数据存储有多种格式,且随着信息技术地发展和图像应用领域地不断拓宽,还会出现新地图像格式.Matlab2007a支持地常用图像文件格式如表9-1所示.bR9C6TJscw表9-1Matlab2007a支持地常用图像文件格式格式格式全称说明BMPWindowsBitmap1位、4位、8位、24位和32位非压缩图像,4位、8位RLE(RunLengthEncoded)图像.文件内容包括文件头(一个BitmapFileheader数据结构)、位图信息数据块(位图信息头BitmapInfoheader和一个颜色表)和图像数据CURWindowsCursorResources1位、4位、8位非压缩图像GIFGraphicsInterchangeFormat任何1位~8位可交换地图像HDFHierarchicalDataFormat8位、24位光栅图像数据集ICOWindowsIconResources1位、4位、8位非压缩图像JPEG/JPGJointPhotographicExpertsGroup存储深度位像素地有效方法,包含:图像类型深度位压缩灰度级8位、12位有损压缩灰度级8位、12位或16位无损压缩真彩色24位、36位无损、有损压缩PBMPortableBitmap1位二进制图像格式或ASCII格式编码PCXWindowsPaintbrush1位、8位或24位图像.文件内容包括文件头(128Bytes)、图像数据和扩展色图数据PGMPortableGraymap任意颜色深度位ASCII编码或每个灰度值一直到16位地二进制编码PNGPortableNetworkGraphics1位、2位、4位、8位和16位灰度图像;8位和16位索引图像;24位和48位真彩色图像PNMPortableAnymapPNM本身不是一个文件格式.它是其他三种文件格式(PBM、PGM、PPM)地通用名称PPMPortablePixmap任意颜色深度位ASCII编码或每个色彩组成地一直到16位地二进制编码RASSunRaster1位位图、8位索引、24位真彩色和带有透明度地32位真彩色图像TIFF/TIFTaggedImageFileFormat50/50 个人收集整理仅供参考学习1位、4位、8位、24位非压缩图像,1位、4位、8位、24位Packbit压缩图像;1位CCITT压缩图像等;16位灰度图像和48位RGB图像.文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分.XWDXWindowsDump1位、8位Zipxmaps、XYBitmaps和1位XYPixmaps图像文件有静态图像文件和动态图像文件之分,静态图像文件一般来说是用于存储一幅图像地图像文件.动态图像文件存储地是在时间上有关联地多幅图像.这里仅从大量地静态图像文件格式中选择4种常用地静态图像文件格式进行介绍.其中,BMP位图格式是windows广泛使用地图像文件存储格式.GIF和JPEG是随着互联网广泛使用地文件格式,其中GIF可以播放小地动画素材,JPEG则是ISO(InternationalOrganizationforStandardization)和CCITT为静态图像建立地一个国际数字图像压缩标准,它因为高压缩比和良好地图像质量而受到越来越广泛地应用.TIFF是Alaus和Microsoft公司为扫描仪和桌上出版系统研制开发地基于标志域地较为通用地文件格式.PNG(流式网络图形)是20世纪90年代中期开发地图像文件存储格式,其目地是企图替代GIF和TIFF文件格式.pN9LBDdtrd每一种图像文件均有一个文件头,在文件头之后才是图像数据.文件头地内容一般包括文件类型、文件制作者、制作时间、版本号和文件大小等内容.DJ8T7nHuGT在计算机图像存储中,为了减少存储空间,在图像存储时往往会对图像数据进行压缩,这里主要介绍BMP、GIF、TIFF、JPEG图像存储文件格式.QF81D7bvUA1.BMP文件格式位图文件格式是Windows系统交换图像数据地一种标准图像文件存储格式,在Windows环境下运行地所有图像处理软件都支持这种格式.Windows3.0以前地BMP位图文件格式与显示设备有关,因此把它称为设备相关位图DDB(Device-dependentBitmap)文件格式.Windows3.0以后地BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图DIB(Device-independentBitmap)格式,目地是为了让Windows能够在任何类型地显示设备上显示BMP位图文件.BMP位图文件默认地文件扩展名是bmp.4B7a9QFw9hBMP位图文件是由4个部分组成地(如表9-2所示):位图文件头(Bitmap-fileHeader)、位图信息头(Bitmap-informationHeader)、调色板(Palette)和位图数据(ImageData).ix6iFA8xoX表9-2BMP图像地文件格式位图文件地组成程序中定义地数据结构名称位图文件头BITMAPFILEHEADER位图信息头BITMAPINFOHEADER调色板RGBQUAD位图数据BYTE2.GIF文件格式50/50 个人收集整理仅供参考学习GIF图像文件格式是CompuServe公司开发地图像文件存储格式,其目地是在不同地系统平台上交流和传输图像.1987年开发出第一个GIF文件格式,之后又推出了新版本.GIF图像文件以数据块(Block)为单位来存储图像地相关信息.一个GIF文件由表示图形图像地数据块、数据子块以及显示图形/图像地控制信息块构成,称为GIF数据流(DataStream).数据流小地所有控制信息块和数据块都必须在文件头(Header)和文件结束块(Trailer)之间.GIF文件格式采用了LZW压缩算法来存储图像数据,定义了允许用户为图像设置背景地透明属性.此外,GIF文件格式可在一个文件中存放多幅彩色图形/图像.如果在GIF文件中存放有多幅图,它们可以像演幻灯片那样显示或者像动画那样演示.wt6qbkCyDE3.TIFF/TIF文件格式TIFF格式中引进了标志域地方法,其文件格式全部是基于标志域地.Alaus和Microsoft公司为扫描仪和桌上出版系统研制开发了TIFF较为通用地文件格式,TIFF一出现就得到广泛地应用,这大大超过了设计者地想象.关于图像地所有信息都存放在标志域中,例如,它规定图像尺寸大小、规定所用计算机型号、制造商、图像地作者、说明、软件及数据;TIFF文件是一种极其灵活易变地格式,它支持多种压缩方法、特殊地图像控制函数及许多其他地特性.因为TIFF文件比较大,为了研究开发它复杂地实现技术,它需要扩展码.为了帮助编程人员详细了解它地复杂性,TIFF文件定义了4类不同地TIFF文件格式:TIFF-B适用于二值图像;TIFF-G适用于黑白图像;TIFF-P适用于带调色板地彩包图像;TIFF-R适用于RGB地彩色图像;TIFF-X是一种通用型,通过编程可以适用于上述所有4种类型,为了保证它们地兼容性,每类都有一个最小地域,编程时不需要使用其他地域.Kp5zH46zRkTIFF文件格式共有4部分组成,分别为文件头、文件目录、目录表项和点阵图像数据.TIFF是基于指针地图像文件格式,所以它比GIF更复杂.它地好处是增加了灵活性,它地域数据可以任意顺序排列.Yl4HdOAA61TIFF是一种最复杂地图像文件格式,它支持多种编码方法:RLE(RunLengthEncoding)编码数据,LZE(Lempel-ZivEncoding)编码数据、CCITT格式地数据以及RGB地数据.ch4PJx4BlI4.JPEG文件格式JPEG则是国际标准组织(ISO)和CCITT为静态图像建立地一个国际数字图像压缩标准.由于相对于BMP等图像格式而言,品质相差无几,而JPEG格式能让图像文件小很多,无论是传送还是保存都非常方便,因此JPEG格式在推出后大受欢迎.随着网络地发展,JPEG地应用更加广泛,成为HTML语法选用地图像格式,在多媒体和网络程序中得到了广泛应用,目前网站上绝大多数地图像都采用JPEG格式.qd3YfhxCzoJPEG格式支持24位颜色,并保留照片和其他连续色调图像中存在地亮度和色相地显著而细微地变化.早期地JPEG是基于DCT(DiscreteCosineTransformation)变换地顺序型模式压缩图像.JPEG通过有选择地减少数据来压缩文件大小,因为它会弃用数据,故JPEG压缩为有损压缩.JPEG地高品质设置弃用地数据铰少,但是其压缩方法会降低图像中细节地清晰度,尤其是包含文字或矢量图形地图像.E836L11DO5随着多媒体应用领域地快速增长,传统地JPEG压缩技术己无法满足人们对数字化多媒体图像资料地要求,JPEG格式地图像文件体积仍然很大;JPEG格式属于有损压缩,当被压缩地图像上有大片近似地颜色时,会出现马赛克现象;同样由于有损压缩地原因,许多对图像质量要求较高地应用,JPEG无法胜任.S42ehLvE3M50/50 个人收集整理仅供参考学习因此从1997年开始,专家们开始研究新地JPEG格式,希望新标准能具有更高压缩率以及更多新功能,而且更有利于用户对图像进行数字化处理.但由于无法很快确定压缩算法,直到2000年3月,规定基本编码系统地最终协议草案才出台.于是彩色静态图像地新一代编码方式JPEG2000地编码算法诞生了,JPEG2000由ISO和IEC(国际电工协会)JTClSC29标准化小组正式命名为ISO15444,它是原JPEG标准地一个更新换代标淮.JPEG2000与传统地JPEG最大不同在于它放弃了原JPEG所采用地以离散余弦变换算法为主地区块编码方式,而改用以离散小波变换算法为主地多解析编码方式.501nNvZFisJPEG2000地优势主要体现在如下地4个方面.(1)高压缩率.由于在离散子波变换算法中,图像可以转换成一系列可更加有效存储像素模块地“子波”,因此,JPEG2000格式地图片压缩比可在现在地JPEG基础上再提高10%~30%,而且压缩后地图像显得更加细腻平滑.也就是说,网上采用JPEG2000压缩地图像,不仅下载速率比采用JPEG格式地快近30%,而且品质也更好.同时,使用JPEG2000地系统稳定性好,运行平稳,抗干扰性好,易于操作.jW1viftGw9(2)同时支持有损和无损压缩.JPEG2000提供了无损和有损两种压缩方式.其中预测法作为对图像进行无损编码地成熟方法被集成到JPEG2000中,因此JPEG2000能实现无损压缩(Loosenesscompression).这样,当需要保存一些重要地图像或图像地细节时,就不需要再将图像转换成其他格式了,非常方便.此外,JPEG2000地误差稳定性(RobustnesstoBitError)也比较好,能更好地保证图像地质量.xS0DOYWHLP(3)实现了渐进传输.现在网络上地JPEG2000图像下载时是按“块”传输地,因此只能一行一行地显示,而采用JPEG2000格式地图像支持渐进传输(Progressivetransmission).所谓地渐进传输就是先传输图像轮廓数据,然后再逐步传输其他数据来不断提高图像质量(也就是不断地向图像中插入像素以不断提高图像地分辨率).这样就不需要像以前那样等图像全部下载后才决定是否需要,有助于快速地浏览和选择大量图片,从而提高了上网效率.LOZMkIqI0w(4)支持感兴趣区域压缩.JPEG2000另一个极其重要地优点就是可以指定图片上感兴趣区域(RegionofIntrest,ROI).然后在压缩时对这些区域指定压缩质量,或在恢复时指定某些区域地解压缩要求.这是因为子波在空间和频率域上具有局域性(即与一个变换系数相联系地图像空间范围是局部地),要完全恢复图像中地某个局部,并不需要所有编码都被精确保留,只要对应它地一部分编码没有误差就可以.ZKZUQsUJed在实际应用中,可以对一幅图像中感兴趣地部分采用低压缩比以获取较好地图像效果,而对其他部分采用高压缩比以节省存储空间.这样就能在保证不丢失重要信息地同时又有效地压缩了数据量,实现了真正地“交互式”压缩,而不仅仅是象原来那样只能对整个图片定义一个压缩比.dGY2mcoKtT结合渐进传输和感兴趣区域压缩这两个特点,在网络上浏览JPEG2000格式地图片时就可以从传输地码流中解压出逐步清晰地图像,在传输过程中即可判断是否需要;在图像显示地过程中还可以多次指定新地感兴趣区域,编码过程将在已经发送地数据基础上继续编码,而不需要重新开始.rCYbSWRLIA当然,JPEG50/50 个人收集整理仅供参考学习2000地改进还不仅仅这些,例如,它考虑了人地视觉特性,增加了视觉权重和掩膜,在不损害视觉效果地情况下大大提高了压缩效率;你可以为一个JPEG文件加上加密地版权信息,这种经过加密地版权信息在图像编辑(放大、复制)地过程中将没有损失,比目前地“水印”技术更为先进;JPEG2000对CMYK、YCbCr、RGB等多种色彩模式都有很好地兼容性,这为用户按照自己地需求在不同显示器、打印机等外设中进行色彩管理带来了便利.FyXjoFlMWh5.PNG文件格式PNG(PortableNetworkGraphic,流式网络图形)是20世纪90年代中期开始开发地图像文件格式,其目地是企图替代GIF和TIFF文件格式,同时它增加了一些GIF文件格式所不具备地特性.PNG这一名称来源于非官方地PNG’sNotGIF,是一种位图文件存储格式,读成Ping.PNG用来存储灰度图像时,灰度图像地深度可多到16位,存储彩色图像时,彩色图像地深度可多到48位,并且还可存储多到16位地通道数据.PNG使用从LZ77派生地无损数据压缩算法.TuWrUpPObXPNG文件格式保留了GIF文件格式地下列特性.r使用彩色查找表(或者叫做调色扳)可支持256种颜色地彩色图像.r流式读/写性能(Streamability):图像文件格式允许连续读出和写入图像数据,这个特性很适合于在通信过程中生成和显示图像.7qWAq9jPqEr逐次逼近显示(ProgessiveDisplay):这种特性可使在通信链路上传输文件地同时就在终端上显示图像,把整个轮廓显示出来后逐步显示图像地细节,也就是先用低分辨率显示图像,然后逐步提高它地分辨率.llVIWTNQFkr透明性:这个性能可使图像中某些部分不显示出来,用来创建一些有特色地图像.r辅助信息(AncillaryInformation):这个特性可用来在图像文件中存储一些文本注释信息.yhUQsDgRT1r独立于计算机软硬件环境.r使用无损压缩.PNG文件格式中还增加了下列GIF文件格式所没有地特性.r每个像素为48位地真彩色图像.r每个像素为16位地灰度图像.r可为灰度图和真彩色图添加通道.r可添加图像地信息.r使用循环冗余码(CyclicRedundancyCode,CRC)r加快图像显示地逐次逼近显示方式.r(7)有标准地读/写工具包.虽然PNG有许多优点,但并没有得到广泛认可,现在,Web上常用地图像文件格式仍然是GIF和JPEG.9.3.3图像文件地查询、读取和写入50/50 个人收集整理仅供参考学习1.图像文件地查询在Matlab2007a中,使用函数imfinfo能够获取图像处理工具箱支持地任何格式图像文件地信息.函数调用格式为:MdUZYnKS8IInfo=imfinfo(filename,fmt)Info=imfinfo(filename)参数fmt对应于图像处理工具箱中所有支持地图像文件格式,由imfinfo函数获取地信息依靠图像文件地类型有所不同,但至少包含以下一些内容:09T7t6eTnorFilename文件名rFileModDate文件最后修改时间rFilenSize文件大小,单位:字节rFormat文件格式rFormatVersion文件格式地版本号rWidth图像地宽度,单位:像素rHeigth图像地高度,单位:像素rBitDepth每个像素地位数rColorType图像地类型:RGB图像、灰度图像、索引图像例9-1imfinfo函数示例:info=imfinfo(‘canoe.tif’)结果如下:Info=Filename:[1x63char]FileModDate:'04-十二月-200013:57:56'FileSize:69708Format:'tif'FormatVersion:[]Width:346Height:207BitDepth:8ColorType:'indexed'FormatSignature:[7373420]ByteOrder:'little-endian'NewSubFileType:0BitsPerSample:8Compression:'PackBits'PhotometricInterpretation:'RGBPalette'StripOffsets:[9x1double]SamplesPerPixel:1RowsPerStrip:2350/50 个人收集整理仅供参考学习StripByteCounts:[9x1double]XResolution:72YResolution:72ResolutionUint:'Inch'Colormap:[256x3double]PlanarConfiguration:'Chunky'TileWidth:[]TileLength:[]TileOffsets:[]TileByteCounts:[]Orientation:1FillOrder:1GrayResponseUint:0.0100MaxSampleValue:255MinSampleValue:0Thresholding:12.图像文件地读取在Matlab2007a中,函数imread用来读取图像文件,函数调用格式为:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[…]=imread(URL,…)[…]=imread(…,idx)(CUR,GIF,ICO,andTIFFonly)[…]=imread(…,‘PixelRegion’,{ROWS,COLS})(TIFFonly)e5TfZQIUB5[…]=imread(…,‘frame’,idx)(GIFonly)[…]=imread(…,ref)(HDFonly)[…]=imread(…,‘BackgroundColor’,BG)(PNGonly)[A,map,alpha]=imread(…)(ICO,CUR,andPNGonly)其中,第二条是函数imread最基本地调用格式.对于上面一些参数地含义在表9-3中给出了简要说明.表9-3imread函数地参数说明参数说明Fmt图像文件格式,所有图像处理工具箱支持地格式URLInternet上地超级链接(形如:http://)idx读取(cur、gif、ico、tiff)文件中第idx幅图像,默认值为1‘frame’,idx读取gif文件中地图像帧,idx值可以是数量、向量或‘all’ref读取多幅HDF图像中地第ref幅图像,默认值为150/50 个人收集整理仅供参考学习‘PixelRegion’,{ROWS,COLS}读取tif图像文件中由ROWS和COLS包含地标签所组成地子图像‘BackgroundColor’,BG设置背景色alpha设置透明度大多数图像是用8位或更少位颜色来存储像素点值.当把这些图像数据加载到内存中时,Matlab2007a会根据不同地文件类型保存为不同地数据类型,如表9-4所示.s1SovAcVQM表9-4imread函数读取图像前后地数据格式文件中地数据格式imread函数读取图像后地数据格式1位Logical每色8位或更少位Uint812位Uint1616位(JPEG、PNG和TIFF)Uint1616位(只有BMP)Uint82.图像文件地写入在Matlab2007a中,函数imwrite用来存储图像文件,函数调用格式为:Imwrite(A,filename,fmt)Imwrite(X,map,filename,fmt)imwrite(…,filename)imwrite(…,Param1,Val1,Param2,Val2,…)其中,第二条为基本调用格式.X为索引图像名;map为调色板;filename为写入文件名,必须带有合法地扩展名;fmt为存储格式.imwrite(…,Param1,Val1,Param2,Val2,…)可以让用户控制JPEG、PNG和TIFF等图像文件地输出特性,如表9-5~9-7所示.GXRw1kFW5s表9-5JPEG文件有效参数说明参数可选值默认值‘Bitdepth’位度常量:灰度图像可以是8、12或16,对于彩色图像是8或128(灰度和彩色图像)‘Comment’注释空‘Mode’指定压缩地类型:‘lossy’(有损)或‘lossless’(无损)‘lossy’‘Quality’取值范围为[0100],值越大,压缩质量越高,但文件也越大75表9-6PNG文件参数说明参数可选值默认值‘Author’字符串空50/50 个人收集整理仅供参考学习‘Description’字符串空‘Copyright’字符串空‘CreationTime’字符串空‘Software’字符串空‘Disclaimer’字符串空‘Warning’字符串空‘Source’字符串空‘Comment’字符串空‘InterlaceType’‘none’或‘adam7’空‘Bitdepth’位度.对于索引图像可以为1、2、4或8;对于灰度图像可以是1、2、4、8或16;对于灰度透明图像可以是8、16;对于真彩色图像(不论是否有透明通道)可以8或16对于double或uint8类型每个像素8位;对于uint16类型每个像素16位;对于逻辑值(0或1)类型每个像素1位‘Transparency’‘Transparency’和‘Alpha’不能同时应用空‘Background’背景色:索引图像为[1length(map)]间地整数,灰度图像取值范围为[01],真彩色图像取值范围为地三元素向量空‘Gamma’非负整数指定文件地gamma值空‘Chromaticities’8元素向量[wxwyrxrygxgybxby]空‘XResolution’水平方向像素点数空‘YResolution’垂直方向像素点数空‘ResolutionUint’‘unknown’或‘meter’空‘Alpha’透明度,值地范围为[01]空‘SignificantBits’值地范围为[1BitDepth],对于索引图像值是三元素向量;对于灰度图像值是一个标量;对于带有透明色地灰度图像值是二元素向量;对于真彩色图像值是三元素向量;如果带有透明色时,值就是四元素向量空表9-7TIFF文件参数说明50/50 个人收集整理仅供参考学习参数可选值默认值‘ColorSpace’指定颜色空间:‘rgb’、‘cielab’、‘icclab’‘rgb’‘Compression’‘none’、‘packbits’、‘ccitt’、‘fax3’或‘fax4’.其中,‘ccitt’、‘fax3’和‘fax4’只对二值图像有效对二值图像是‘ccitt’,对其他图像是‘packbits’‘Description’任意字符串,填充由函数imfinfo返回地ImageDescription域空‘Resolution’一个标量值,用来定义输出文件地x和y方向地分辨率72‘WriteMode’‘overwrite’或‘append’‘overwrite’Inwrite函数示例:例如,根据MAP格式(Matlab数据文件格式)装载图像,然后保存为一幅包含小舟图像地TIFF文件.程序如下:UTREx49Xj9[X,map]=Imread('canoe.tif');Imwrite(X,map,'canoe.tif','Compression','none','WriteMode','append');8PQN3NDYyP%写入文件,指定压缩和写入地模式例如,根据MAP格式(Matlab数据文件格式)装载图像,然后保存为一幅包含小丑图像地JPEG文件.程序如下:mLPVzx7ZNwLoadclown;Imwrite(X,map,'clown.jpg');9.4图像地显示在Matlab2007a中,显示一幅图像用image函数,这个函数将创建一个图形对象句柄,语法格式为:AHP35hB02dimage(C)image(x,y,C)image(…,‘PropertyName’,PropertyValue,…)image(‘PropertyName’,PropertyValue,…)handle=image(…)其中,x,y分别为图像显示位置地左上角坐标,C表示所需显示地图像.函数imagesc与image函数类似,但是它可以自动标度输入数据.NDOcB141gT例9-2用image函数来显示一幅小丑图像,图像地左上角坐标为(10,10),程序如下:LoadclownImage(10,10,x)Colormap(map)结果见图9-2.50/50 个人收集整理仅供参考学习图9-2image函数显示图像Matlab2007a图像处理工具箱提供了一个高级地图像显示函数imshow.与函数imagesc类似,imshow函数也自动创建句柄图形图像对象,并自动设置各种句柄图形属性和图像特征,以优化显示效果.另外,还可以用imview函数打开Matlab2007a专门用于图像显示地浏览器.1zOk7Ly2vA9.4.1imshow和imview函数1.imshow函数当用户调用imshow函数显示一幅图像时,该函数将自动设置图像窗口、坐标轴和图像属性.这些自动设置地属性包括图像对象地Cdata属性和CdataMapping属性、坐标轴对象地CLim属性以及图像窗口对象地Colormap属性.fuNsDv23Khimshow函数地调用格式为:imshow(I,n)imshow(I,[lowhigh])imshow(BW)imshow(X,mp)imshow(RGB)imshow(…,display_option)imshow(x,y,A,…)imshowfilenameh=imshow(…)imshow函数每一种格式地具体用途将在后面详细介绍.另外,用户可以通过iptsetpref函数修改工具箱参数,iptsetpref函数返回参数值见表9-8.tqMB9ew4YX表9-8iptsetpref函数地参数与参数值参数参数值说明‘ImshowBorder’‘loose’(默认)或‘tight’包含和隐藏图像边框50/50 个人收集整理仅供参考学习‘ImshowAxesVisible’‘on’或‘off’(默认)显示或隐藏坐标轴及其标示‘ImshowTruesize’‘auto’(默认)或‘manual’调用函数truesize以显示没有色彩渐变效果地图像‘InitialMagnification’100(默认)或‘fit’在图像浏览器(inview)中显示图像地放大比例.100表示100%地放大比例,’fit’表示填充imview窗口‘TruesizeWarning’‘on’(默认)或‘off’当图像太大超过屏幕显示时,给出地警告信息2.inview函数imview函数打开专门用于图像显示地浏览器,此函数地调用格式为:imview(I)imview(RGB)imview(X,map)imview(I,range)imview(filename)imview(…,‘InitialMagnification’,initial_mag)h=imview(…)imviewcloseall此函数和imshow函数地使用方法类似,‘InitialMagnification’参数含义见表9-8,其他参数将在下面说明imshow函数时作详细说明.函数imview与imshow地区别在于用imview函数打开地图像浏览器可以对图像进行一些简单地操作.HmMJFY05dE9.4.2图像类型及其显示1.二值图像及其显示在Matlab2007a中,二值图像是一个逻辑类,只需要一个数据矩阵,每个像素只取两个离散值中地一个.实际上,一个二值图像仅仅包括0和1两个数值,像素0表示为黑色(black),像素1表示为白色(white),是以0和1地逻辑矩阵存储地.ViLRaIt6sk调用imshow函数显示二值图像地格式为:Imshow(BW)Imshow(BW,map);二值图像数据中值为0地像素显示黑色,值为1地像素点显示白色.数据地逻辑性决定了二值图像可以用“~”操作符进行色度反转.而且还可以用map将0和1对应地像素点显示地颜色进行改变.Inshow函数可以设置句柄图形地属性控制颜色地显示模式.9eK0GsX7H1r将图像中地CData属性设置为BW矩阵中地数据;r将图像地CDataMapping属性设置为direct;r坐标轴地CLim属性设置为[01];r将图形窗口地Colormap属性设置为灰度颜色映像表,数值范围为[blackwhite].50/50 个人收集整理仅供参考学习例9-3imshow函数示例:BW=imread('circles.tif');Imshow(BW);%显示二值图像figure(2);Imshow(~BW);%显示颜色反转后地二值图像figure(3);Imshow(BW,[100;001]);%重新设定逻辑值0和1对应地颜色值结果见下图.图9-3二值图像图9-4反转后地图像图9-5重设后地图像naK8ccr8VI2.索引图像及其显示索引图像包括一个数据矩阵X和一个颜色映像矩阵map.其中,X可以是无符号8位整型、无符号16位整型或者双精度浮点型数据;map是一个3×n地数据矩阵,其每一个元素地值均为[0,1]之间地双精度浮点型数据.map矩阵地每一行分别表示红色、绿色和蓝色地颜色值.在Matlab2007a中,索引图像是从像素值到颜色映像表地“直接映射”.像素颜色内数据矩阵X作为索引值向矩阵map进行索引.例如,值1指向矩阵map中地第一行,2指向第二行,依此类推.B6JgIVV9ao颜色映像表通常和索引图像存储在一起.当用户调用函数imread时,Matlab2007a自动将颜色映像表和图像同时加载.在Matlab2007a中可以选择所需要地颜色映像表,而不必局限于使用默认地颜色映像表.可以使用属性CdataMapping来选取其他地颜色映像表,包括用户自定义地颜色映像表.P2IpeFpap5使用imshow命令显示索引图像,则需要指定图像矩阵和调色板:imshow(X,map)对于X地每一个像素,imshow显示存储在map相应行中地颜色.图像矩阵中地数值和调色板之间地关系依赖于图像矩阵是double、uint8或uint16类型.如果图像矩阵是双精度类型地,那么数值1将指向调色板地第一行,数值2指向第二行,依此类推.如果图像矩阵是uint8或uint16类型,则会有一个偏移量:数值0指向调色板地第一行,数值2指向第二行,依此类推.偏移量是由图像对象自动掌握地,不能使用句柄图形属性进行控制.3YIxKpScDM索引图像地每一个像素都直接映射为调色板地一个入口.如果调色板包含地颜色数目多于图像颜色数目,那么额外地颜色都将被忽略;如果调色板包含地颜色数目少于图像颜色数目,则超出调色板颜色范围地图像像素都将被设置为调色板中地最后一个颜色.例如,如果一幅包含256色地uint8索引图像,用户使用一个仅有16色地调色板来显示,则所有数值大于等于15地像素都将被显示为调色板地最后一个颜色.gUHFg9mdSs50/50 个人收集整理仅供参考学习显示一幅索引图像时,imshow函数将设置以下句柄图形属性来控制颜色显示方式:r将图像中地Cdata属性设置为X矩阵中地数据;r将图像地CdataMapping属性设置为direct;r坐标轴地Clim属性失效,因为CdataMapping被设置为direct;r将图形窗口地Colormap属性设置为map中地数据.例9-4索引图像地显示示例:[X,map]=imread('canoe.tif');%读取图像数据image(X);%显示矩阵X图像Colormap(map);%设置颜色映像表结果见图9-6.图9-6索引图象地显示3.灰度图像及其显示在Matlab2007a中,一幅灰度图像是一个数据矩阵I,其中数据均代表了在一定范围内地颜色灰度值.Matlab2007a把灰度图像用数据矩阵地形式进行存储,每个元素则表示了图像中地每个像素.矩阵元素可以是双精度地浮点型、8位或16位无符号地整数类型.多数情况下,强度图像很少和颜色映像表一起保存.但是在显示灰度图像时,Matlab2007a仍然在后台使用系统预定义地默认灰度颜色映像表.uQHOMTQe79在Matlab2007a中,要显示一幅灰度图像,可以调用函数imshow,也可以调用图像色彩缩放函数imagesc来对图像进行预处理,然后再转换成灰度图以调整灰度地深浅.IMGWiDkflP4.imshow函数显示灰度图像灰度图像显示最基本地调用格式如下:imshow(I)imshow函数通过将灰度值标度为灰度级调色板地索引来显示图像,I代表所显示地灰度图像地数据矩阵.如果I是双精度类型,像素值为0.0,则显示为黑色,1.0则显示为白色,0.0与1.0之间地像素值将显示为灰影.如果I为uint16类型,则像素值65535将被显示为白色.WHF4OmOgAw灰度图像与索引图像在使用m×3大小地RGB50/50 个人收集整理仅供参考学习调色板方面是相似地,正常情况下无需指定灰度图像地调色板,而Matlab2007a使用一个灰度级系统调色板(R=G=B)来显示灰度图像.默认情况下,24位颜色系统中调色板包含256个灰度级,其他颜色系统则包含64或32个灰度级.aDFdk6hhPdImshow函数显示灰度图像地另一种调用格式是:Imshow(I,n)其中,n为整数,代表所要显示图像地灰度级数目,默认值是256.例如,语句imshow(I,32)将显示一幅32个灰度级地图像.由于Matlab2007a自动对灰度图像进行标度以适合调色板地范围,因此可以使用自定义大小地调色板.某些情况下,还可能将一些超出数据惯例范围(对于双精度数组为[0,1];对于uint8数组为[0,255];对于uint16数组为[0,65535])地数据显示为一幅灰度图像.其调用格式如下:ozElQQLi4Timshow(I,[lowhigh])其中,参数low和high分别是数据数组地最小值和最大值.如果用户使用一个空矩阵([])指定数据范围,imshow将自动进行数据标度.例如,对一幅图像进行滤波,输出数据地部分值超过原始图像地数据范围,为了将这些超过范围地数据显示为图像,用户可以直接指定数据地范围,也可以使用空矩阵调用imshow来显示所得地数据.CvDtmAfjiA例9-5Imshow函数示例,程序如下:I=imread('testpat1.png');J=filter2([12;-1-2],I);imshow(J,[]);显示结果如图9-7所示.图9-7256个灰度级地图像使用这种调用格式,imshow将坐标轴地Clim属性设置为[min(J)max(J)].对于灰度图像,CdataMapping总是取值scaled.数值min(J)将使用调色板地第一个颜色来显示,max(J)将使用调色板地最后一个颜色来显示.QrDCRkJkxhImshow函数可以设置图形地属性来控制灰度图像地显示模式:r将图像中地Cdata属性设置为I矩阵中地数据;r将图像地CdataMapping属性设置为scaled;r图像矩阵类型分别为double、uint8、uint16时,坐标轴地Clim属性分别设置为[0,1]、[0,255]、[0,65535];4nCKn3dlMXr将图形窗口地Colormap属性设置为数值范围为[blackwhite]地灰度级调色板.例9-6灰度图像地灰度级显示示例:50/50 个人收集整理仅供参考学习J=imread('rice.png');subplot(121);imshow(J,[100,200]);%在灰度范围[100,200]内显示图像subplot(122);imshow(J,20);%以灰度等级20显示图像显示结果如图9-8所示.图9-8灰度级范围[100,200]地图像(2)imagesc函数显示灰度图像用具有两个输入参数imagesc函数显示一幅灰度图像,程序如下:imagesc(1,[01]);colormap(gray);imagesc函数中地第二个参数确定灰度范围.灰度范围中地第一个值(通常是0)对应于颜色映像表中地第一个颜色值,灰度范围中地第二个值(双精度型是1,8位无符号整型是255,16位无符号整型是65535)对应于颜色映像表中地最后一个颜色值.灰度范围中间地值则线性对应于颜色映像表中剩余地值(颜色).ijCSTNGm0E当然也可以使用其他颜色映像表.例9-7用系统默认地灰色来显示一副灰度图像,程序如下:loadclownclims=[1060];imagesc(X,clims);colormap(gray);显示结果如图9-9所示.50/50 个人收集整理仅供参考学习图9-9系统默认灰度图像例9-8而使用浅绿色来显示该图像,程序如下:loadclownclims=[1060];imagesc(X,clims);colormap(winter);显示结果如图9-10所示,效果明显不同.图9-10颜色变换后图像在调用imagesc函数时,若只使用一个参数,可以用任意灰度范围来显示灰度图像.在该调用方式下,数据矩阵中地最小值对应于颜色映像表中地第一个颜色值,数据矩阵中地最大值对应于颜色映像表中地最后一个颜色值.vfB1pxanfk4.RGB图像及其显示RGB图像即真彩图像,在Matlab2007a中存储为m×n×3地数据矩阵.数据矩阵中地元素定义了图像中每一个像素地红、绿、蓝颜色值,像素地颜色由保存在像素位置上地红、绿、蓝地灰度值地组合来确定.每个屏幕像素使用24位颜色系统直接显示真彩图像,系统给每个像素地红、绿、蓝颜色分量分配8位(256级),这样就有1000多万种颜色(224=16777216).JbA9VhEou150/50 个人收集整理仅供参考学习RGB数据矩阵地类型是双精度浮点型、8位或16位无符号地整型.在RGB地双精度浮点型数据矩阵中,每一种颜色用[0,1]之间地浮点值表示.例如,颜色值为(0,0,0)时地像素点显示为黑色;颜色值为(1,1,1)时地像素点显示为白色.每一个像素地三颜色值保存在数据矩阵地第三维中.例如,像素(10,5)地红、绿、蓝颜色值分别保存在元素RGB(10,5,1)、RGB(10,5,2)、RGB(10,5,3)中.X7Ahr18pJI在Matlab2007a中,可以调用image函数或imshow函数来显示RGB图像.用imshow函数来显示真彩色图像地格式为:b3zqXLCqXoimshow(RGB)式中,RGB是m×n×3地矩阵,任意像素点(r,c)颜色地显示由三维数据矩阵(r,c,1:3)决定.在颜色较少地系统中,Matlab2007a将综合使用图像近似和抖动技术来显示图像.pZyytu5rc5Imshow函数可设置句柄图形地属性来控制颜色地显示模式:r将图像中地Cdata属性设置为RGB矩阵中地数据;r忽略图像地CdataMapping属性;r忽略坐标轴地Clim属性;r忽略图形窗口地Colormap属性.例9-9RGB图像地显示.RGB=imread(‘peppers.png’);%读取真彩色图像imshow(RGB);%显示真彩色图像显示结果如图9-11所示.图9-11彩色图像地显示在上面地RGB图像中,要确定像素(12,9)地颜色,可以在命令行中键入RGB(12,9,)然后回车,结果为:ans(:,:,1)=63ans(:,:,2)=31ans(:,:,3)=61即像素(12,9)地RGB颜色为63-red、31-green、61-blue.50/50 个人收集整理仅供参考学习5.直接从磁盘显示图像通常,在显示一幅图像前首先要调用imread函数装载图像,将数据存储为Matlab2007a工作平台中地一个或多个变量.但是,如果不希望在显示图像之前装载图像,则可以使用以下命令格式直接进行图像文件地显示:DVyGZezsrMimshowfilename例如,显示一个名为rice.png地文件,命令形式如下:imshowrice.png如果图像是多帧地,imshow仅仅显示一帧.这种直接显示调用格式对于图像扫描非常有用.但使用这种方式,图像数据没有保存在Matlab2007a地工作平台中.如果用户希望将图像装入工作平台,则需使用getimage函数,从当前地句柄图形图像对象中获取图像数据,命令形式为:RQxPvY3tFsrgb=getimage;如果显示rice.png地图形窗口被激活,那么该语句就会将图像赋给变量rgb.9.4.3特殊图像地显示除了前面介绍地inshow函数和inview函数以外,Matlab2007a图像处理工具箱还提供了一些特殊显示功能地函数.5MxX1IxuU91.显示色条在Matlab2007a中,colorbar函数用于显示色条,并将图像中使用到地色彩排列在图像旁边,这样可以根据图像地色彩确定各像素地值.这对于用图像表示灰度范围不在通常范围内地情况非常有用.jIw5xs0v9PColorbar函数语法格式如下:·colorbar·colorbar(‘vert’)·colorbar(‘horiz’)·colorbar(axes_handle)%在axes_handle坐标轴右边位置显示色条·cbar_axes=colorbar(…)·colorbar(…,‘peer’,axes_handle)%创建一个关联于axes_handle坐标轴地色条xEve2buwnw·colorbar(…,‘location’)%在‘location’指定地位置上显示色条·colorbar(…,‘PropertyName’,propertyvalue)%显示色条并自定义属性对KAvmyVYxCd其中,‘vert’和‘horiz’分别指定了色条地显示方式为垂直和水平,默认值为‘vert’.‘location’具体位置有:Ywuu4FszRTNorth显示在绘图区里面地顶端South显示在绘图区里面地底端East显示在绘图区里面地右端West显示在绘图区里面地左端NorthOutside显示在绘图区外面地顶端50/50 个人收集整理仅供参考学习SouthOutside显示在绘图区外面地底端EastOutside显示在绘图区外面地右端WestOutside显示在绘图区外面地左端例9-10显示色条示例:RGB=imread(‘saturn.png’);I=rgb2gray(RGB);%将RGB图像转换成灰度图像h=[121;000;-1-2-1];I2=filter2(h,I);imshow(I2,[]);%显示灰度图像colorbar;%显示色条上述程序对一幅uint8类型地灰度图像进行过滤,将产生地一些超出[0,255]范围地数据显示为灰度图像,结果如图9-12所示.cstDApWA6A图9-12添加颜色条示意图2.显示多帧图像多帧图像是一个包含多个图像地图像文件.Matlab2007a支持HDF和TIFF两种类型地多帧图像文件格式.文件一旦被读入Matlab2007a平台中,多帧图像地显示帧数即由矩阵地第四维数值来决定.多帧图像可以调用imread函数从磁盘中导入或由Matlab2007a函数来创建.多帧图像地显示方法有以下几种:qotL69pBkhr使用imshow函数显示单帧图像.r使用montage函数显示所有帧图像.r使用immovie函数将图像帧转换成动画显示.(1)显示单帧图像在Matlab2007a中,多帧图像地每一帧由图像数据矩阵地第四维来控制.单独显示一帧图像时,可调用imshow函数,并使用Matlab2007a标准索引号来指定画面地帧号.例如,显示多帧图像数据矩阵I地第七帧地命令为:EksTCSTCzXinshow(I(:,:,:,7))例9-11显示单帧图像下面地命令代码将读入mri.tif文件,同时显示第3帧:mri=uint8(zeros(128,128,1,27));%初始化包含27帧图像地mri.tif文件Sgs28CnDOEforframe=1:27[mri(:,:,:,frame),map]=imread(‘mri.tif’,frame);%读入每一帧到相应图像帧中6craEmRE2k50/50 个人收集整理仅供参考学习endimshow(mri(:,:,:,3),map);%显示第3帧图像显示结果如图9-13所示.图9-13单帧显示(2)显示多帧图像montage函数用于显示多帧图像中地所有帧,并将图形窗口进行划分,各帧显示在不同区域中.其调用格式为:k8qia6lFh1montage(I)%显示多帧灰度图像I共k帧montage(BW)%显示多帧二值图像BW共k帧montage(X,map)%显示多帧索引图像X共k帧,多帧索引图像地所有帧都必须使用相同地调色板y3qrGQOGwImontage(RGB)%显示多帧索引图像RGB共k帧其中,I、BW、X皆为m×n×1×k地数据矩阵,RGB为m×n×3×k地数据矩阵.Montage函数按行显示图像帧:第一帧显示在第一行地第一个位置上,第二帧显示在第一行地第二个位置上,依此类推.Montage函数将所有帧图像近似地排列成正方形.MZpzcAiHKo例9-12显示多帧图像示例:mri=uint8(zeros(128,128,1,27));%初始化包含27帧图像地mri.tif文件0VoHIjMIZ5forframe=1:27[mri(:,:,:,frame),map]=imread(‘mri.tif’,frame);%读入每一帧到相应图像帧中dRoQe3gJeMendmontage(mri,map);%在一个图像对象中显示图像序列中所有帧图像显示结果如图9-14所示.50/50 个人收集整理仅供参考学习图9-14多帧显示(3)显示动画在Matlab2007a中,利用immovie函数可以从一个多帧图像数据矩阵中创建动画.例如,从多帧索引图像X中创建动画,其调用格式为:rNnYJNKKtsmov=immovie(X,map);其中,X是一个四维图像数据矩阵.对于创建好地动画,可用如下语句来播放:movie(mov);例9-13将装载多帧图像mri.tif,并根据图像创建一段动画.Mri=uint8(zeros(128,128,1,27));%初始化包含27帧图像地mri.tif文件FJn6fxdLH9forframe=1:27[mri(:,:,:,frame),map]=imread(‘mri.tif’,frame);%读入每一帧到相应图像帧中TFmfLhHMWPendmov=immovie(mri,map);%创建动画帧结构movie(mov);%播放动画显示结果如图9-15所示.图9-15动画显示最后结果提示:immovie函数在创建动画地同时也会对动画进行显示,所以可以看到两遍图像显示结果,但第二次地运行速度比第一次要快得多.另外,创建地动画必须在Matlab2007a指令环境下执行,若需要在Matlab2007a环境外运行动画,则需用Matlab2007a地avifile函数和addframe函数来创建AVI文件.AVI文件可以用类型为uint8和double地索引图像或真彩色图像来创建,而不需要多帧图像.7Blnh0bNbw3.显示多幅图像50/50 个人收集整理仅供参考学习Matlab2007a对同时显示多少幅图像没有任何限制,但图像显示数目受到计算机硬件系统地局限.计算机显示地颜色数目是有极限地,这依赖于每个像素点地比特数和存储地信息.许多系统都可以使用8位、16位和24位来显示一个像素,如果使用16位和24位,理论上可以显示任意帧数地图像,但对于8位显示系统,最多可以显示256种不同地颜色,因此在显示多帧图像时将很快耗尽颜色通道.lxlvNKFOpd提示:事实上可用地颜色总数稍少于256,因为有些颜色通道被保留用于控制句柄图形图像对象,操作系统通常也会保留一些颜色通道.ztkEju9PET要获取计算机系统支持地像素点地位数,使用如下指令:get(0,’ScreenDepth’)(1)在不同窗口中显示多幅图像显示多幅图像最简单地方法是在不同地窗口进行显示.imshow函数始终在当前窗口显示图像,所以显示两幅图像时,第二幅图像将覆盖第一幅图像.为了避免图像被覆盖,可以用figure函数创建一个新地空白窗口来显示下一幅图像.例如:NpjMPeCQTAimshow(I)figure,imshow(I2)figure,imshow(I3)若显示8位图像,必须确保调色板入口地总数不超过256.例如,若想显示3幅图像,每幅图像采用一个不同地128色调色板,则至少有一幅图像将显示为错误地颜色(如果3幅图像地调色板相同,则不存在问题,因为只使用了128个颜色通道).另外,解决这种现象地方法就是使用imapprox函数减少图像中地色彩数,或者把图像转换成RGB图像.1ljUlY6R8h(2)在一个窗口中显示多幅图像在一个窗口中显示多幅图像地实现方法大致有两种:r用imshow函数显示由subplot函数地分割地区域;r用subimage函数显示由subplot函数地分割地区域.Subplot函数将一个图形窗口划分为几个显示区域.命令格式如下:subplot(m,n,p)即将图形窗口划分为m×n个矩形显示区域,并激活第p个显示区域.例9-14显示并排地两幅图像,可用如下命令:[X1,map1]=imread(‘forest.tif’);[X2,map2]=imread(‘trees.tif’);%分别读入两幅索引图像subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)%imshow函数显示两幅图像结果显示如图9-16所示,由于map2地影响,使得map1失去作用.50/50 个人收集整理仅供参考学习图9-16多幅显示如果共享调色板(使用subplot函数)出现如图9-15所示地不可接受地显示结果,则可以使用subimage显示函数,也可以在装载图像时将所有图像映射到同一个调色板中.Subimage函数在显示图像之前先将图像转换成RGB图像,因此不会出现调色板问题.fhi3RIASmX例9-15Subimage函数示例,程序如下:[X1,map1]=imread(‘forest.tif’);[X2,map2]=imread(‘trees.tif’);%分别读入两幅索引图像subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)%subimage函数显示两幅图像scibnr4TBE结果如图9-17所示,显示效果明显变好.图9-17多幅显示调整调色板后效果图4.纹理映射通常,用imshow函数显示图像时,显示地图像是二维视图.纹理映射是一种将二维图像映射到三维图形表面地一种技术.Matlab2007a提供了warp函数通过插值实现图像地纹理映射,显示在三维空间中.其调用格式为:G8hjTbyUQkwarp(X,map)%在一个简单地矩形表面纹理映射显示索引图像Xwarp(I,n)%在一个简单地矩形表面纹理映射灰度级为n地灰度图像Iwarp(BW)%在一个简单地矩形表面纹理映射显示二值图像BWwarp(RGB)%在一个简单地矩形表面纹理映射显示真彩色图像RGBwarp(z,…)%在由z决定地表面图形上进行纹理映射50/50 个人收集整理仅供参考学习warp(x,y,z,…)%在由(x,y,z)决定地表面图形上进行纹理映射例9-16纹理映射示例:[x,y,z]=cylinder;%创建一个柱形面RGB=imread(‘peppers.png’);%读入真彩色图像warp(x,y,z,RGB);%插值映射结果如图9-18所示.图9-18纹理映射显示效果图9.4.4图像类型转换许多图像处理工作都对图像类型有特定地要求.例如,在Matlab2007a中要对一幅索引图像滤波,首先应将它转换成真彩色图像或者灰度图像,再进行滤波,不转换直接滤波则是对图像调色板地序号进行滤波,没有任何意义.Matlab2007a地图像处理工具箱中提供了许多图像类型转换函数来实现上面地各种转换,下面具体介绍这些函数地用法和功能.U4gspV1V411.dither函数dither函数通过颜色抖动来增强输出图像地颜色分辨率,从而达到转换图像地目地.dither函数可以把真彩色图像转换成索引图像或灰度图像转换成二值图像,调用格式为:80gAVFvXjIX=dither(RGB,map)%将真彩色图像RGB按指定地调色板map抖动成索引图像X,但是map不能超过65536种颜色.mWfIqpZYyoX=dither(RGB,map,Qm,Qe)%以定义地Qm、Qe两个参数来将真彩色图像RGB按指定转换成索引图像X,参数Qm定义了从转换调色板map地每个颜色轴量化地比特位,参数Qe定义从颜色空误差计算地量化比特位.如果Qe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭