my MATLAB.docx

上传人:b****2 文档编号:11528437 上传时间:2023-06-01 格式:DOCX 页数:26 大小:986.35KB
下载 相关 举报
my MATLAB.docx_第1页
第1页 / 共26页
my MATLAB.docx_第2页
第2页 / 共26页
my MATLAB.docx_第3页
第3页 / 共26页
my MATLAB.docx_第4页
第4页 / 共26页
my MATLAB.docx_第5页
第5页 / 共26页
my MATLAB.docx_第6页
第6页 / 共26页
my MATLAB.docx_第7页
第7页 / 共26页
my MATLAB.docx_第8页
第8页 / 共26页
my MATLAB.docx_第9页
第9页 / 共26页
my MATLAB.docx_第10页
第10页 / 共26页
my MATLAB.docx_第11页
第11页 / 共26页
my MATLAB.docx_第12页
第12页 / 共26页
my MATLAB.docx_第13页
第13页 / 共26页
my MATLAB.docx_第14页
第14页 / 共26页
my MATLAB.docx_第15页
第15页 / 共26页
my MATLAB.docx_第16页
第16页 / 共26页
my MATLAB.docx_第17页
第17页 / 共26页
my MATLAB.docx_第18页
第18页 / 共26页
my MATLAB.docx_第19页
第19页 / 共26页
my MATLAB.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

my MATLAB.docx

《my MATLAB.docx》由会员分享,可在线阅读,更多相关《my MATLAB.docx(26页珍藏版)》请在冰点文库上搜索。

my MATLAB.docx

myMATLAB

课程设计任务书

学生姓名:

鲁敬敬专业班级:

通信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日,上交课程设计成果及报告,同时进行答辩。

 

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

目录

摘要3

Abstract4

1MATLAB支持的几种图像文件格式5

2MATLAB几种图像类型6

3图像的保存9

4图像的输入10

4.1图像输入函数10

4.2图像输入函数举例11

5图像的输出12

5.1图像输出函数12

5.2图像输出举例13

5.2.1显示灰度图13

5.2.2显示索引图14

5.2.3显示RGB图15

5.2.4显示文件中的图像16

5.2.5特殊图像显示技术--添加颜色条17

6图形类型转换19

6.1灰度图转换成二进制图19

6.2灰度图转换成索引图20

6.3RGB图转换成索引图21

6.4RGB图转换成灰度图23

6.5索引图转换为灰度图24

6.6索引图转换为RGB图25

课程设计总结26

参考文献27

摘要

MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。

作为强大的科学计算平台,它几乎能够满足所有的计算需求。

MATLAB本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。

利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。

本次课程设计介就是MATLAB环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换

关键词:

MATLAB图像处理图像格式变换

Abstract

MATLABisascientificcomputinglanguagethataddsthefunctionofnumericalcomputingandgraphicsprocessing,symbolstogether.Asapowerfulscientificcomputingplatforms,itcanalmostsatisfyallthecalculationsthatneeds.MATLABitselfisapowerfultoolofdatavisualizationthatcandisplaydatathroughvariousforms,suchasgraylevelhistogram,contours,montagemixing,pixelanalysis,thelayertextureandtransformation.Withvisualgraphics,itcannotonlyevaluateimagecharacteristics,butalsoanalyzethedistributionofcolorimage.

ThepurposeofthepracticeofintroducingMATLABenvironmentisthemostbasicofsomeimageprocessingoperations,suchasread,write,imageinformationandimageformat,sizeandgraytelescopic;etc.Throughtheexperimentmasteryofimagehistogramsdepictsmethod,deepenthehistogramimagefeatureandtherelationshipbetweentheshapeofunderstanding,andtodeepentheunderstandingofhistogramequalizationalgorithm.

Keywords:

MATLABimageprocessingimageformatconversion

1MATLAB支持的几种图像文件格式

⑴JPEG(JointPhotogyaphicExpeytsGroup):

一种称为联合图像专家组的图像压缩格式。

⑵BMP(WindowsBitmap):

有1位、4位、8位、24位非压缩图像,8位RLE(RunlengthEncoded)的图像。

文件内容包括文件头(一个BITMAPFILEHEADER数据结构)、位图信息数据块(位图信息头BITMAPINFOHEADER和一个颜色表)和图像数据。

⑶PCX(WindowsPaintbrush):

可处理1位、4位、8位、16位、24位等图像数据。

文件内容包括文件头、图像数据和扩展色图数据。

⑷TIFF(TaggedIamgeFileFormat):

处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。

文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。

⑸PNG(PortableNetworkGraphics):

包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

⑹GIF(GraphicsInterchangeFormat):

任何1位到8位的可交换的图像。

⑺HDF(HierarchialDataFormat):

有8位、24位光栅图像数据集。

⑻ICO(WindowsIconresource):

有1位、4位、8位非压缩图像。

⑼CUR(WindowsCursorresource):

有1位、4位、8位非压缩图像。

⑽XWD(XWindowsDump):

包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。

⑾RAS(SunRasterimage):

有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。

⑿PBM(PortableBitmap)。

⒀PGM(PortableGraymap)。

⒁PPM(PortablePixmap)。

2MATLAB几种图像类型

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个字节)

索引图像

图像数组大小:

m×n

图像元素取值:

[1,p]

色度矩阵:

p×3

色度元素值:

[0,1]

图像数组大小:

m×n

图像元素取值:

[0,p-1]

色度矩阵:

p×3

色度元素值:

[0,255]

图像数组大小:

m×n

图像元素取值:

[0,p-1]

色度矩阵:

p×3

色度元素值:

[0,65535]

 

图1索引图像对应的色度元素值

(2)在MATLAB中,一幅灰度图像是一个数据矩阵I,I中的数据均代表了在一定范围内的图像灰度值。

MATLAB把灰度图像存储为一个数据矩阵,该矩阵中的元素分别代表了图像中的像素。

矩阵中的元素可以是双精度的浮点类型、8位或16位无符号的整数类型。

大多数情况下,灰度图像很少和颜色映射表一起保存,但是在显示灰度图像时,MATLAB仍然在后台使用系统预定义的默认灰度颜色映射表。

表2灰度图像的特征

图像数组大小:

m×n

图像元素值:

[0,1]

色度矩阵:

p×3

色度元素值:

[0,1]

图像数组大小:

m×n

图像元素值:

[0,255]

色度矩阵:

p×3

色度元素值:

[0,1]

图像数组大小:

m×n

图像元素值:

[0,65535]

色度矩阵:

p×3

色度元素值:

[0,1]

图2灰度图像的色度元素值

(3)二值图像:

在二进制图像中,像素的取值为两个离散数值0或1中的一个,分别代表黑与白。

表3二值图像的特征

图像数组大小:

m×n

图像元素值:

0或1

 

图3二值图像的元素值

(4)RGB图像即真彩色图像,在MATLAB中存储为n×m×3的数据矩阵。

数组中的元素定义了图像中的每一个像素的红、绿、蓝颜色值。

需指出的是,RGB图像不是用windows的颜色映射表,像素的颜色由保存在像素位置上的红、绿、蓝的灰度值的组合来确定。

图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分别占8位,这样可以有1000多万种颜色。

表4RGB图像的特征

双精度类:

Double

(每个元素占8个字节)

整数类:

Unit8

(每个元素占1个字节)

整数类(Unit16)

(每个元素占2个字节)

数组大小:

m×n×3

(:

:

1)-红色分量

(:

:

2)-绿色分量

(:

:

3)-蓝色分量

元素取值:

[0,1]

(无调色板)

数组大小:

m×n×3

(:

:

1)-红色分量

(:

:

2)-绿色分量

(:

:

3)-蓝色分量

元素取值:

[0,255]

(无调色板)

数组大小:

m×n×3

(:

:

1)-红色分量

(:

:

2)-绿色分量

(:

:

3)-蓝色分量

元素取值:

[0,65535]

(无调色板)

 

图1-4RGB图像的色度元素值

3图像的保存

图像的保存一般有四种方式:

(1)在Figure窗口选择File--Saveas,保存图像,可以保存为fig,egs,jpeg,gif,png,bmp等格式

(2)在Figure窗口选择Edit--->copyfigure,可以将图像复制,再粘贴其他程序,例如,可以粘贴到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,...)

读取来自InternetURL的形象。

URL必须包含协议类型(例如,包含http:

//)。

(5)[...]=imread(...,Param1,Val1,Param2,Val2...)

控制特定格式的操作的各种特性的参数。

4.2图像输入函数举例

采用上述[X,map]=imread(filename)图像输入函数输入图像

【例】

[X,map]=imread('trees.tif');%读取名为“trees.tif”的索引图到X,与其相关的颜色映射到map

读取的图像数据(部分)如下图所示:

图4-1imread函数读取的图像数据(部分)

 

5图像的输出

5.1图像输出函数

MATLAB提供imshow函数显示图像,并且MATLAB会自动设置图形窗口,坐标轴和图像的属性,在MATLAB中,imshow函数的语法如下:

imshow(I)显示灰度图像I

(2)imshow(I,[lowhigh])

显示灰度图像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,[lowhigh]):

其中I为灰度图像的数据矩阵,[lowhigh]用于指定对应灰度颜色映射表中的灰度值;MATLAB将小于等于low的像素设置为黑色,将大于等于high的像素设置为白色。

【例】

使用上述两种函数显示图像的命令如下:

I=imread('cameraman.tif');%输入图像cameraman.tif的数据

subplot(121);imshow(I);%用imshow(I)函数显示灰度图像

subplot(122);h=imshow(I,[080]);

%用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为一个m×n×3的图像数据阵列。

在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-3RGB图像显示举例

5.2.4显示文件中的图像

显示图像时,该图像的对象数据保存在MATLAB运行内存中的一个或多个变量中。

但是如果用户将图像保存在可以通过imread或dicomread函数读取的图形文件中,则可以通过下面的语法直接将其显示出来。

语法格式如下:

Imshowfilename:

filenema是需要打开的图形文件的路径及文件名。

【例】

使用上述函数显示文件中的图像命令如下:

figure;imshow('xiju.jpg')%在figure窗口中显示图像xiju.jpg

 

文件中的图像xiju.jpg显示如下:

图5-4文件中的图像显示举例

5.2.5特殊图像显示技术--添加颜色条

在MATLAB的图像显示中,可以利用colorboard函数将颜色条添加到坐标轴对象中。

如果该坐标轴对象包含一个图像对象,则添加的颜色条将指示出该图像中不同颜色的数据值。

【例】

使用coloebar函数为图像添加颜色条的命令如下:

I=imread('moon.tif');%输入图片moon.tif

imshow(I)%显示灰度图I

colorbar%为灰度图I添加颜色条

I1=imread('peppers.png');%输入图片moon.tif

figure%打开一个figure窗口

imshow(I1)%显示图像I1

colorbar%为RGB图添加颜色条

图像及对应的颜色条显示如下:

图5-5图像颜色条显示举例

 

6图形类型转换

图像类型转换指的是二进制图、索引图、灰度图和RGB图之间的相互转换,可以用下图简单描述各种图像之间的转换关系。

下面将单独举例说明各种图像之间的相互转换。

6.1灰度图转换成二进制图

利用dither函数通过筛选算法将灰度图转换成二进制图,函数语法格式如下:

BW=dither(I)

【例】

用dither函数灰度图转换成二进制图的命令如下:

I=imread('cameraman.tif');%读取图片cameraman.tif

BW=dither(I);%将灰度图I转换成二进制图BW

figure;imshow(I)%显示灰度图I

figure;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.tif

[X,map]=gray2ind(I,64);%将灰度图I转换成索引图X

figure;imshow(I)%显示灰度图I

figure;imshow(X)%显示索引图X

转换结果如下图所示:

图6-2灰度图转换为索引图举例

6.3RGB图转换成索引图

通过rgb2ind函数可以将RGB图转换成索引图,可采用的方法包括直接转换、均匀量化、颜色图近似4种。

除直接转换方法外,其他方法在不指定选项nodither时自动进行图像筛选。

其相对应的语法格式如下:

[X,map]=rgb2ind(RGB):

直接将RGB图像转换为具有调色板图map的矩阵X。

[X,map]=rgb2ind(RGB,tol):

用均匀量化法将RGB图像转换为索引图像X,tol的范围为0.0~1.0。

[X,map]=rgb2ind(RGB,n):

用最小方差量化方法将RGB图转换为索引图X,map中包含至少n种颜色,n必须小于或等于65536。

X=rgb2ind(RGB,map

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2