利用MATLAB仿真软件进行图像的 输入、输出和格式变换.doc_第1页
利用MATLAB仿真软件进行图像的 输入、输出和格式变换.doc_第2页
利用MATLAB仿真软件进行图像的 输入、输出和格式变换.doc_第3页
利用MATLAB仿真软件进行图像的 输入、输出和格式变换.doc_第4页
利用MATLAB仿真软件进行图像的 输入、输出和格式变换.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除课程设计任务书学生姓名: 鲁敬敬 专业班级: 通信1105班 指导教师: 工作单位: 信息工程学院 利用MATLAB仿真软件进行图像的输入、输出和格式变换设计要求读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换时间安排:1、 2014年12 月23日,布置课设具体实施计划与课程设计报告格式的要 求说明。2、 2014 年 1 月 1 日至 2014 年 1月 4 日,方案选择和程序设计。3、 2014 年 1 月 5 日至 2014 年 1 月 9 日,程序调试和设计说明书撰写。4、 2014年 1 月 11日,上交课程设计成果及报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要3Abstract41 MATLAB支持的几种图像文件格式52 MATLAB几种图像类型63 图像的保存94 图像的输入104.1 图像输入函数104.2图像输入函数举例115 图像的输出125.1 图像输出函数125.2图像输出举例135.2.1 显示灰度图135.2.2 显示索引图145.2.3 显示RGB图155.2.4 显示文件中的图像165.2.5 特殊图像显示技术-添加颜色条176 图形类型转换196.1 灰度图转换成二进制图196.2 灰度图转换成索引图206.3 RGB图转换成索引图216.4 RGB图转换成灰度图236.5索引图转换为灰度图246.6 索引图转换为RGB图25课程设计总结26参考文献27摘要MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。本次课程设计介就是MATLAB环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换关键词:MATLAB 图像处理 图像格式变换AbstractMATLAB is a scientific computing language that adds the function of numerical computing and graphics processing, symbols together. As a powerful scientific computing platforms, it can almost satisfy all the calculations that needs. MATLAB itself is a powerful tool of data visualization that can display data through various forms, such as graylevel histogram, contours, montage mixing, pixel analysis, the layer texture and transformation. With visual graphics, it can not only evaluate image characteristics, but also analyze the distribution of color image.The purpose of the practice of introducing MATLAB environment is the most basic of some image processing operations, such as read, write, image information and image format, size and gray telescopic; etc. Through the experiment mastery of image histograms depicts method, deepen the histogram image feature and the relationship between the shape of understanding,and to deepen the understanding of histogram equalization algorithm.Keywords: MATLAB image processing image format conversion1 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几种图像类型MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。(1)索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为0, 1之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。颜色映射表通常和索引图像存在一起,当用户在调用函数imread时,MATLAB自动将颜色映射表与图像同时加载,在MATLAB中可以选择所需要的颜色映射表,而不必局限于使用默认的颜色映射表。我们可以使用属性CDataMapping来选取其他的颜色映射表,包括用户自定义的颜色映射表。如果图像数据矩阵是双精度的数据类型,则值1指向矩阵Map中的第一行,值2指向第二行,但如果图像矩阵是8位无符号的整数类型或16位无符号的整数类型,则由于存在一个偏移量,因而使值0指向矩阵Map中的第一行,以此类推。表1 索引图像的特征 双精度类:Double(每个元素占8个字节)整数类:Unit8(每个元素占1个字节)整数类(Unit16)(每个元素占2个字节)索引图像图像数组大小:mn图像元素取值:1,p色度矩阵:p3色度元素值:0,1图像数组大小:mn图像元素取值:0,p-1色度矩阵:p3色度元素值:0,255图像数组大小:mn图像元素取值:0,p-1色度矩阵:p3色度元素值:0,65535图 1 索引图像对应的色度元素值(2)在MATLAB中,一幅灰度图像是一个数据矩阵I,I中的数据均代表了在一定范围内的图像灰度值。MATLAB把灰度图像存储为一个数据矩阵,该矩阵中的元素分别代表了图像中的像素。矩阵中的元素可以是双精度的浮点类型、8位或16位无符号的整数类型。大多数情况下,灰度图像很少和颜色映射表一起保存,但是在显示灰度图像时,MATLAB仍然在后台使用系统预定义的默认灰度颜色映射表。表2 灰度图像的特征灰度图像图像数组大小:mn图像元素值:0,1色度矩阵:p3色度元素值:0,1图像数组大小:mn图像元素值:0,255色度矩阵:p3色度元素值:0,1图像数组大小:mn图像元素值:0,65535色度矩阵:p3色度元素值:0,1图2 灰度图像的色度元素值 (3)二值图像:在二进制图像中,像素的取值为两个离散数值0或1中的一个,分别代表黑与白。 表3 二值图像的特征二值图像图像数组大小:mn图像元素值:0或1图3 二值图像的元素值(4)RGB图像即真彩色图像,在MATLAB中存储为nm3的数据矩阵。数组中的元素定义了图像中的每一个像素的红、绿、蓝颜色值。需指出的是,RGB图像不是用windows的颜色映射表,像素的颜色由保存在像素位置上的红、绿、蓝的灰度值的组合来确定。图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分别占8位,这样可以有1000多万种颜色。 表4 RGB图像的特征双精度类:Double(每个元素占8个字节)整数类:Unit8(每个元素占1个字节)整数类(Unit16)(每个元素占2个字节)真彩图像数组大小:mn3(:,:,1)红色分量(:,:,2)绿色分量(:,:,3)蓝色分量元素取值:0,1(无调色板)数组大小:mn3(:,:,1)红色分量(:,:,2)绿色分量(:,:,3)蓝色分量元素取值:0,255(无调色板)数组大小:mn3(:,:,1)红色分量(:,:,2)绿色分量(:,:,3)蓝色分量元素取值:0,65535(无调色板)图1-4 RGB图像的色度元素值3 图像的保存图像的保存一般有四种方式:(1)在Figure窗口选择File-Save as,保存图像,可以保存为fig,egs,jpeg,gif,png,bmp等格式(2)在Figure窗口选择Edit-copy figure,可以将图像复制,再粘贴其他程序,例如,可以粘贴到WORD文档中。(3)利用Saveas函数保存图像,Saveas函数语法如下: 1)Saveas(h,filename.ext) :将图像或带有h手柄文件的Simulink框图保存到filename.ext,文件的格式由分机决定。2)Saveas(h,filename,format)将图像或带有h手柄文件的Simulink框图按照一定格式保存到指定文件中。(4)利用Print函数保存图像。(5)利用Print函数保存图像,函数格式如下:imwrite(A,filename,fmt) :保存无调色板的图像imwrite(X,map,filename,fmt) :保存有调色板的图像imwrite(,filename) :文件名中含格式imwrite(,Param1,Vall,Param2,Val2,) :指定保存参数(其中imwrite(,Param1,Val1,Param2,Val2)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。)在MATLAB中,默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。文件格式:bmp、jpg、pcx、tif。【例】使用imwrite函数将tif图像保存为jpg图像x,map=imread(trees.tif);imwrite(x,map,trees.tif,JPG,Quality,75)4 图像的输入 4.1 图像输入函数 在MATLAB中,可以使用imread函数读取程序支持格式的文件该命令相应的格式如下:(1)A = imread(filename, fmt)读取由字符串filename指定的文件灰度或彩色图像。如果该文件不在当前文件夹中,或在MATLAB的路径的文件夹,指定完整的路径名。文本字符串FMT指定的文件通过其标准的文件扩展名的格式。返回值A为含有图像数据的数组。如果该文件包含一个灰度图像,A是一个M-N的数组。(2) X,map = imread(filename)读取相应文件名的索引图像到X和其相关联的颜色映射到map。在图像文件中的颜色表的值会自动重新调整到范围0,1。(3). = imread(filename) 试图从它的内容推断出该文件的格式。(4). = imread(URL,.)读取来自Internet URL的形象。 URL必须包含协议类型(例如,包含http:/)。(5). = imread(.,Param1,Val1,Param2,Val2.)控制特定格式的操作的各种特性的参数。4.2图像输入函数举例采用上述X,map = imread(filename)图像输入函数输入图像【例】X,map = imread(trees.tif);%读取名为“trees.tif”的索引图到X,与其相关的颜色映射到map读取的图像数据(部分)如下图所示:图4-1 imread函数读取的图像数据(部分)5 图像的输出5.1 图像输出函数MATLAB提供imshow函数显示图像,并且MATLAB会自动设置图形窗口,坐标轴和图像的属性,在MATLAB中,imshow函数的语法如下:imshow(I)显示灰度图像I(2)imshow(I,low high)显示灰度图像I,指定显示范围,因为我在低高。值低(小于低的任意值)显示为黑色;值高(大于高任意值)显示为白色。介于两者之间的值会显示为灰色的中间色调,采用灰度等级数为缺省值。如果您为低高使用一个空矩阵(),imshow使用分钟(我(:))最大(I(:)),也就是说,在我的最低值显示为黑色,最大值显示为白色。(3)imshow(RGB)显示真彩色图像的RGB。(4)imshow(BW)显示二值图像BW。 imshow具有值0(零)的像素显示为黑色,像素值为1,为白色。(5)imshow(X,map)显示索引图像X中的颜色映射图。颜色映射矩阵可以有任意数量的行,但必须恰好有3列。每一行被解释为一种颜色,与第一元件指定红色光,第二绿色,第三个蓝色的强度。色强度可以在间隔0.0至1.0中指定。(6)imshow(filename)显示存储在图形文件的文件名的图像。该文件必须包含可以由imread或dicomread被读取的图像。 imshow呼吁imread或dicomread从文件中读取图像数据,但并不存储在MATLAB工作空间中的图像数据。如果该文件包含多个图像,imshow显示文件中的第一张图像。该文件必须在当前目录或在MATLAB的路径。(7)himage = imshow(.)返回的句柄由imshow创建的图像对象。(8)imshow(., param1, val1, param2, val2,.)显示图像,指定的参数和用于控制图像显示的各个方面对应的值。下表按字母顺序列出所有imshow参数。参数名称可以缩写,并且不区分大小写。例:显示灰色图像:5.2图像输出举例5.2.1 显示灰度图imshow函数显示灰色图像的语法如下:(1)imshow(I):其中I为灰度图像的数据矩阵(2)imshow(I,low high):其中I为灰度图像的数据矩阵,low high用于指定对应灰度颜色映射表中的灰度值;MATLAB将小于等于low的像素设置为黑色,将大于等于high的像素设置为白色。【例】使用上述两种函数显示图像的命令如下:I = imread(cameraman.tif);%输入图像cameraman.tif的数据subplot(121);imshow(I);%用imshow(I)函数显示灰度图像subplot(122);h = imshow(I,0 80);%用imshow(I,low,high)函数显示灰度图像灰度图像cameraman.tif显示如下:图5-1 灰度图像显示举例5.2.2 显示索引图使用imshow函数显示MATLAB的索引图像时,可以同时设置图像的数据矩阵和颜色映射表(调色板矩阵),具体语法形式如下:Imshow(X,map):其中,对应X中的每一个像素,imshow都将其显示为存储在map映射表矩阵的相应的行锁对应的颜色。【例】使用上述函数显示图像的命令如下:X,map = imread(trees.tif);%输入图片trees.tif的数据imshow(X,map) %用颜色表map展示索引图X索引图像trees.tif显示如下:图5-2 索引图像显示举例5.2.3 显示RGB图使用imshow函数显示RGB图的语法如下:Imshow(RGB):其中RGB为一个mn3的图像数据阵列。在MATLAB中,该数据阵列属于double类、uint8类或uint16类。数据阵列中元素的取值取决于该阵列所属的类型,如果该数据阵列属于double类,则其元素的取值范围是0,1;如果该数据阵列属于uint8类,则其元素的取值范围为0,255;如果该数据阵列属于uint16类,则其元素的取值范围为0,65535。【例】使用上述函数显示图像的命令如下:RGB=reshape(ones(64,1)*reshape(jet(64),1,192),64,64,3); figure;imshow(RGB)RGB图像显示如下:图5-3 RGB图像显示举例5.2.4 显示文件中的图像显示图像时,该图像的对象数据保存在MATLAB运行内存中的一个或多个变量中。但是如果用户将图像保存在可以通过imread或dicomread函数读取的图形文件中,则可以通过下面的语法直接将其显示出来。语法格式如下:Imshow filename:filenema是需要打开的图形文件的路径及文件名。【例】使用上述函数显示文件中的图像命令如下:figure;imshow(xiju.jpg)%在figure窗口中显示图像xiju.jpg文件中的图像xiju.jpg显示如下:图5-4 文件中的图像显示举例5.2.5 特殊图像显示技术-添加颜色条在MATLAB的图像显示中,可以利用colorboard函数将颜色条添加到坐标轴对象中。如果该坐标轴对象包含一个图像对象,则添加的颜色条将指示出该图像中不同颜色的数据值。【例】使用coloebar函数为图像添加颜色条的命令如下:I = imread(moon.tif);%输入图片moon.tifimshow(I) %显示灰度图Icolorbar %为灰度图I添加颜色条I1 = imread(peppers.png);%输入图片moon.tiffigure %打开一个figure窗口imshow(I1) %显示图像I1colorbar %为RGB图添加颜色条图像及对应的颜色条显示如下:图5-5 图像颜色条显示举例6 图形类型转换图像类型转换指的是二进制图、索引图、灰度图和RGB图之间的相互转换,可以用下图简单描述各种图像之间的转换关系。下面将单独举例说明各种图像之间的相互转换。6.1 灰度图转换成二进制图利用dither函数通过筛选算法将灰度图转换成二进制图,函数语法格式如下:BW=dither(I)【例】用dither函数灰度图转换成二进制图的命令如下:I = imread(cameraman.tif); %读取图片cameraman.tifBW=dither(I); %将灰度图I转换成二进制图BWfigure;imshow(I)%显示灰度图Ifigure;imshow(BW)%显示二进制图BW转换结果如下图所示:图6-1 灰度图转换为二进制图举例6.2 灰度图转换成索引图使用gray2ind函数将灰度图转换成索引图,其语法格式如下:X,map=gray2ind(I,n):根据指定的灰度级数n和颜色图map,将灰度图像I转换为索引图形X,n的默认值为64【例】用gray2ind函数将灰度图转换成索引图的命令如下:I = imread(cameraman.tif);%读取图片cameraman.tifX,map=gray2ind(I,64); %将灰度图I转换成索引图Xfigure;imshow(I) %显示灰度图Ifigure;imshow(X) %显示索引图X转换结果如下图所示:图6-2 灰度图转换为索引图举例6.3 RGB图转换成索引图通过rgb2ind函数可以将RGB图转换成索引图,可采用的方法包括直接转换、均匀量化、颜色图近似4种。除直接转换方法外,其他方法在不指定选项nodither时自动进行图像筛选。其相对应的语法格式如下:X,map = rgb2ind(RGB):直接将RGB图像转换为具有调色板图map的矩阵X。X,map = rgb2ind(RGB,tol):用均匀量化法将RGB图像转换为索引图像X,tol的范围为0.01.0。X,map = rgb2ind(RGB,n):用最小方差量化方法将RGB图转换为索引图X,map中包含至少n种颜色, n必须小于或等于65536。X = rgb2ind(RGB,map):通过将RGB图中的颜色与调色板图map中最接近的颜色匹配,将RGB转换为具有map颜色的索引图。【例】用X,map = rgb2ind(RGB,n)函数将RGB图转换成索引图的命令如下:RGB=reshape(ones(64,1)*reshape(jet(64),1,192),64,64,3);X,map=rgb2ind(RGB,64); %将RGB图I转换成索引图Xsubplot(121);imshow(RGB) %显示RGB图subplot(122);imshow(X) %显示索引图X转换结果如下图所示:图6-3 RGB图转换为索引图举例6.4 RGB图转换成灰度图使用rgb2gray函数将RGB图转换成灰度图,其语法格式如下:I=rgb2gray(RGB)。【例】用rgb2gray函数将RGB图转换成灰度图的命令如下:X,map = imread(trees.tif);%输入图片trees.tifgmap = rgb2gray(map); %将调色板图转换成灰度图%打开一个新的figure窗口,MATLAB会用它来输出图象figure;imshow(X,map) %用颜色表map展示索引图Xfigure;imshow(X,gmap); %用灰度图展示索引图X转换结果如下图所示:图6-4 RGB图转换为灰度图举例6.5索引图转换为灰度图使用ind2gray函数可以将索引图转换成灰度图,其语法格式如下:I=ind2gray(X,map):将具有调色板矩阵的索引色图I转换成灰度图X,丢弃图像的灰度和饱和度,仅保留看图像的亮度信息【例】用ind2gray函数将索引图转换为灰度图的命令如下:I = imread(trees.tif); %输入图片trees.tifX=ind2gray(I,map); %将索引I转换成灰度图Xsubplot(122);imshow(I) %显示索引图Isubplot(121);imshow(X) %显示灰度图X转换结果如下图所示:图6-5 RGB图转换为灰度图举例6.6 索引图转换为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论