图像的输入、输出和格式变换.

萌到你眼炸
564次浏览
2021年02月11日 14:39
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:深圳翠园中学高中部)


课程设计任务书



学生姓名:



叶伟超



专业班级:



通信


1005


指导教师:



刘新华



工作单位:



信息工程学院



< br>起始条件:


Matlab


软件




数字信号处理相关知识




要求完成的主要任务


:


< p>
MATLAB


仿真软件进行图像的输入、输出和格式变换。



要求:读取、保存和显示不同格式的图像




进行图像格式的相互变换如索引图像、

< p>
灰度图像、


RGB


图像和二值图像的




相互转换





时间安排:







阶段内容



所需时间





目:利用


MATLAB


仿真软件进行图 像的输入、输出和格式变换



1


2


3


方案设计



软件设计



系统调试







1




2




1




1




5




4


答辩





指导教师签名:











































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









武汉理工大学《

< br>Matlab


应用》课程设计说明书



目录



1


绪论



.< /p>


........................................ .................................................. .................................................. ......


1


1.1


课题研究的相关背景



.


............................... .................................................. ..........................


1


1.2


选题的目的和意义



.


............................... .................................................. .............................


1


1.3


课题研究的内容


< p>
.


................................ .................................................. ................................


2


2 Matlab


图像文件



.


............................... .................................................. ...........................................


3


2.1 Matlab


图像文件简介



.


.......................................... .................................................. .............


3


2.2 Matlab


图像文件类型



.


.......................................... .................................................. .............


4


2.3 Matlab


中图像的存储运算与显示方式


< br>.


................................... ..........................................


7


3


图像的读取与写入



.


.................................. .................................................. ......................................


9


3.1


图像的读取


< br>.


................................... .................................................. ......................................


9


3.3


图像文件的写入



.


................................. .................................................. .............................. 11


4


图像类型与显示


< br>.


................................... .................................................. .......................................


13


4.1


索引图像及显示



.

< br>............................................... .................................................. ...............


13


4.2


灰度图像及其显示



.


.............................................. .................................................. ............


16


4.3


二值图像及其显示



.


.............................................. .................................................. ............


18


4.4 RGB


图像及其显示



.


............................................. .................................................. ..............


19


5


图像类型转换


.


.................................... .................................................. ..........................................


21


5.1 RGB


转换成灰度图像



.

< p>
............................................ .................................................. ...........


21


5.2


灰度图像转换为索引图像



.


........................................... .................................................. ...


22


5.3


灰度图像转化为二值图像



.


........................................... .................................................. ...


23


5.4 RGB


图像转化为索引图像



.


.......................................... .................................................. .....


25


6


收获、体会和建议



.


.................................. .................................................. ....................................


26


参考文献:



.


................................................. .................................................. ....................................


27



















武汉理工大学《

< br>Matlab


应用》课程设计说明书




摘要




当今的信息化社会,图像是人类赖以获取信息的最重要的来源之一。随着计算机技术的< /p>


迅猛发展,


图像技术与计算机技术不断融合,

产生了一系列图像处理软件,



VC



MATLAB



这些软件的广泛应 用为图像技术的发展提供了强大的支持。



MATLAB


可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程


语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、


金融建模设计与分析等领域。



本次课程设计介就是


Matlab


环境下的一些最基本的图像处理操作,如读取、保 存和显示


不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、


RGB


图像和二值图像


的相互转换。

< p>



关键词


:


Matlab


、图像、索引、灰度、相互转换




























I



武汉 理工大学《


Matlab


应用》课程设计说明书




Abstract


Today's information-oriented society, the image is one of the most important sources for mankind's


access to information. With the rapid development of computer technology, image technology and


computer


technology,


continuous


integration,


resulting


in


a


series


of


image


processing


software,


such as VC, MATLAB, these widely used software provides powerful support for the development


of image technology.


MATLAB can matrix operations, drawing functions and data, implementation algorithm to create


the


user


interface,


connected


to


other


programming


languages


procedures,


mainly


used


in


engineering calculations, control design, signal processing and communications, image processing,


signal detection, financial modeling design analysis and other fields.


The course design referral Matlab environment, some of the most basic image processing operations,


such


as


read,


save


and


display


images


of


different


formats,


and


mutual


transformation


of


image


formats, such as index images, grayscale images, RGB images, and binary image conversion.



Keywords: Matlab, image, index, grayscale, interconversion



II



武汉理工大学《


Matlab


应用》课程设计说明书



1


绪论



1.1


课题研究的相关背景



数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理

< p>
的方法和技术。


数字图像处理的产生和迅速发展主要受三个因素的影响:< /p>


一是计算机的发展;


二是数学的发展(特别是离散数学理论的创立 和完善)


;


三是广泛的农牧业、林业、环境、军


事、工业和医学等方面的应用需求的增长。



数字图像 处理最早出现于


20


世纪


50


年代,当时的电子计算机已经发展到一定水平,人


们开始利用计算机来处 理图形和图像信息。数字图像处理作为一门学科大约形成于


20


世纪


60


年代初期。早期的图像处理的目的是改善图像的质量, 它以人为对象,以改善人的视觉效


果为目的。图像处理中,输入的是质量低的图像,输出 的是改善质量后的图像,常用的图像


处理方法有图像增强、复原、编码、压缩等。首次获 得实际成功应用的是美国喷气推进实验



JPL




他们对航天探测器徘徊 者


7


号在


1964

年发回的几千张月球照片使用了图像处理技


术,如几何校正、灰度变换、去除噪声等 方法进行处理,并考虑了太阳位置和月球环境的影


响,由计算机成功地绘制出月球表面地 图,获得了巨大的成功。随后又对探测飞船发回的近


十万张照片进行更为复杂的图像处理 ,以致获得了月球的地形图、彩色图及全景镶嵌图,获


得了非凡的成果,为人类登月创举 奠定了坚实的基础,也推动了数字图像处理这门学科的诞


生。



1.2


选题的目的和意义



课程设计的目的之一是为了巩固课堂理论学习,并能用所学理论知识正确分析信号处理

< p>
的基本问题和解释信号处理的基本现象。



课程设 计的目的之二是通过设计具体的图像信号变换掌握图像和信号处理的方法和步


骤。



通过这次课程设计


,


对数字信号处理这门课程有了更深的理解,而且学会了利用


Matlab


进行信号处理,图像处理的应用。而且学会了读取、保存和显示不同格式的图像,并进行图

< p>
像格式的相互变换如索引图像、灰度图像、


RGB


图像和二值图像的相互转换。



本文参考了大量的文献,对数字 信号处理,图像处理有了更加深刻的理解,通过详细的



1 < /p>


武汉理工大学《


Matlab


应用》课程 设计说明书




调查分析,对于了解< /p>


Matlab


处理信号的技术及其发展状况十分有益。

< p>


1.3


课题研究的内容



本课题通过


Matlab


进行图像的综合处理,对图像经行读取、保存和显示。并进 行图像格


式的相互变换如索引图像、灰度图像、


RGB


图像和二值图像的相互转换



通过研究并在设计 后发现,采用


Matlab


进行图像处理,首先,


Maltab


功能强大,第二,


能够提供很强大的信 号处理能力,是目前比较抢答的信号处理软件。




































2



武汉理工大学《


Matlab


应用》课程设计说明书




2 Matlab


图像文件



2.1 Matlab


图像文件简介





针对


MATLAB


的数字图像处理功能,我们讨论它可以处理的几种图像文件格式:


< p>


A



PCX

< p>
格式。可处理


1



4



8



16



24


位等图像数据。文件内容包括文件头< /p>



、图像


数据、扩展调色板数据。





B



BMP


格式,即位图文件,整幅图可视为一个数字矩阵。它包括


1



4



8



24


位非压


缩图像,


8



RLE


(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据。选



BMP


格式保存一幅灰度模式图像时,可选择以< /p>


Windows


格式保存。而且在选中


4


位或


8



位图 时,还可选压缩(


RLE


)项,在用


R LE


方式压缩保存后图像将毫无损失。这是用得最广的


图像格式 之一,在本文中都对这种格式的图像进行操作。



< p>


C



HDF

< p>
格式。有


8


位,


24


位光栅图像数据集。



< br>(


D



JPEG


格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩


色图 像的压缩标准。它实际上定义了


3


种编码系统:



a


.基于


DCT

< p>
的有损编码基本系统,可用于绝大多数压缩场合;



b


.用于高压缩比、高精度或渐进重建应用的扩展编码系统;



c


.用于无失真应用场合的无损系统。


JPEG


没有规定文件格式、图像分辨率或所用的彩色空


间模型 ,这使它就有可能适用于


MATLAB






E



TIFF


格式。处理


1



4



8


24


位非压缩图像,


1



4



8



24



packbit


压缩图像,


1



CCITT


压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和 图像


数据四部分。它是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描 仪及在


Windows



Macint osh


平台上常用的版面设计软件都支持


TIFF


文件格式。以这种格式保存的


图像文件结构比较复杂,在不压缩存放时文件比 较大。




3



武汉理工大学《


Matlab


应用》课程设计说明书



< br>(


F



XWD

< br>格式。


1



8

< br>位


Zpixmaps, Xybitmaps, 1


位< /p>


XYPixmaps






G



TGA


格式。处理


1



4



8



16



24


位 非压缩图像和行程编码图像。文件包由


5


个固

< br>定长度字段和


3


个可变长度字段组成。

< br>



2.2 Matlab


图像文件类型



MATL AB


支持五种图像类型,即二值图像、索引图像、灰度图像、


R GB


图像和多帧图像阵


列。



索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的

< p>
值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有


三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在


[0



1]


内。




2-1


索引图像的特征



双精度类


:Double


整数类:


Unit8


整数类(


Unit16






(


每个元 素占


8


个字节


)

(


每个元素占


1


个字节

< p>
)


(


每个元素占


2


个字节


)



< /p>


图像数组大小:


m


×

n




图像元素取值


:[1,p]




色度矩阵:


p


×


3


色度元素值:


[0,1]










2-1


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



图像数组大小:


m


×


n


图像数组大小:


m


×


n


图像元素取值


:[0,p-1]


图像元素取值


:[0,p-1]


色度 矩阵:


p


×


3


色度矩阵:


p


×


3


色度元素值:


[0,255]


色度元素值:


[0,65535]



4



武汉理工大学《


Matlab


应用》课程设计说明书




灰度图像:数据矩阵中的元素值一般都在

[0,1]



[0,255]


之间 ,灰度图像根据这些数据


利用线性插值来和色图中的颜色种类匹配。灰度图像一般看起来 是一副黑白图像,但是色彩


明暗度较二值图像更为丰富。因为每一个像素点的取值在


[0,1]



[0,255]


之间。灰度图像读



matlab

< br>中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。




2-2


灰度图像的特征





图像数组大小:

< br>m


×


n




图像元素值


:[0,1]




色度矩阵:


p


×


3




色度元素值:


[0,1]












图像数组大小:


m

< br>×


n


图像元素值


:[0,255]


色度矩 阵:


p


×


3


色度元素值:


[0,1]


图像数组大 小:


m


×


n


图像元素值


:[0,65535]


色 度矩阵:


p


×


3


色度元素值:


[0,1]



2-2


灰度图像的色度元素值



< p>
二值图像:数据矩阵中的元素值只是


0



1


。读入


matlab


也是一个二维矩阵。



二值图像读入


m atlab


中也是一个二维的平面矩阵,但像素点取值只限于


0



1






2-3


二值图像的特征







图像数组大小:


m


×


n




图像元素值:


0



1




5


< /p>


图像数组大小:


m


×

n


图像元素值:


0


< p>
1



武汉理工大学《


M atlab


应用》课程设计说明书












2-3


二值图像的元素值




RGB


图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三 原色在象


素颜色中的比例关系,组成一个三维数组,读入


mat lab


后是一个三维的矩阵。


RGB


图像就


是采用红、绿、蓝作为三原色的,其中


R


为红色,


G


为绿色,


B


为蓝色。这样这个三维矩阵


A


就可以表示成一 个彩色矩阵,也就是一张数字图像可以在


matlab


中读成一 个矩阵


A


。这个三


维矩阵的第一维就是 上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为


第三层代表蓝色数 值。也可以这样理解:将索引图像中的数据矩阵中每一个像素点直接加载


上色图矩阵中对 应的颜色值。




2-4 RGB


图像的特征




(


每个元素占


8


个字节


)


(


每个元素占


1


个字节


)


(


每个元素占


2


个字节


)


数组大小:


m


×


n


×


3




(:,:,1)


-红色分量





(:,:,2)


-绿色分量





(:,:,3)


-蓝色分量





元素取值:


[0,1]


(无调色板)







6



双精度类


:Double


整数类:


Unit8


整数类(


Unit16




数 组大小:


m


×


n


×


3


(:,:,1)


-红色分量



(:,:,2)


-绿色分量



(:,:,3)


-蓝色分量



元素取值:


[0,255]


(无调色板)



数组大小:

< p>
m


×


n


×


3


(:,:,1)


-红色分量



(:,:,2)


-绿色分量



(:,:,3)


-蓝色分量



元素取值:


[0,65535]


(无调色板)



武汉理工大学《


Matlab


应用》课程设计说明书















2-4 RGB


图像的色度元素值




2.3 Matlab


中图像的存储运算与显示方式


< br>在


MATLAB


中,


数值一般都 采用


double




64


位)


存储和运算,


为了节 省存储空间,


MATLAB


为图像提供了特殊的数据类型


uint8



8


位无 符号整数)



以此方式存储的图像称为


8


位型像。


函数


image

< p>
能够直接显示


8


位图像,但


8


位型数据和


double


型数据在


image


中意义不一样,


对于索引图 像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中


的值为< /p>


0


时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的 值为


1


时,表示用


色图矩阵中的第二行 表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差


1


。 所以,


索引图像


double


型和


uint8


型在显示方法上没有什么不同,


只是


8


位数据矩阵的值和颜色种


类之间 有一个偏差


1


。调用格式均为


imag e(x); colormap(map);


对于灰度图像,


u int8


表示


范围


[0



255]



double< /p>


型表示范围


[0



1]


。可见,


double


型和


uint8


型灰度图像不一样,二


者转换格 式为:



I8=uint8 (round (I64*255));


I64=double (I8)/255;


反之,


imread


根据文件中的图像种类作不同的 处理。当文件中的图像为灰度图像时,


imread


把图像存入 一个


8


位矩阵中,


把色图矩阵转换为双 精度矩阵,


矩阵中每个元素值在


[0



1]


内;当为


RGB

< br>图像时,


imread


把数据存入到一个


8



RGB


矩阵中。



7



武汉理工大学 《


Matlab


应用》课程设计说明书









本软件的处理统一针对


BMP


格式的灰度图。在编程时图像读入与输出均要求转换



uint8


型,中间运算处理过程则要用


double


型。






































8


< /p>


武汉理工大学《


Matlab


应用》课程 设计说明书




3


图像的读取与写入



3.1


图像的读取




函数


imread


用来读取图像,把图像数据读取出来以后,可以赋给一个变量。其一调用格


式 如下:



A=imread(filename,fmt)


[X,map]=imread(



)


[



]=imread(filename)


[



]=imrea d(URL,



)


[



]=imread(


< p>
,Paraml,Vall,Param2,Val


)




但在


Matlab



imread


的最基本调用格式是:



A=imread(filename,fmt)


其中,


fi lename


为需要读取的图形文件名。


fmt


为图像格式(可以是


JPG/JPEG



TIF/TIFF



GIF



BMP



PNG


HDF



PCX



XVD



CUR

< p>


IC0



,如果不指定


fmt


参数,则系统根据文件名自


动判 断图像类型。输出参数


X


表示存储图像数据的矩阵名,若图像为 索引图像,


map


为该图


像的调色板。


在应用中,


可以通过使用


imread


函数在线帮助来获得最新的图像文件格式及其


位深度信息。



imread


还可以分帧读取一个多帧图 像文件。例如,以下语句将读取,


rice


< br>Png


文件的



5


帧图像:



I= imread(

< br>‘




);


I(;,5)


大多数图像文件格式采用


8


位数据存储像素值,将这些文件读入内存后,


Matlab


R2009a


都将其存储为


uint8


类型。对于支持


16


位数据的文件格式 ,如


PNG



TIFF



Matlab R2009a


则将这些图像存储为


uint16


类型。和其他


Matla b


R2009a


生成的图像一样,一旦一副图像被

< p>
显示了,


那么它将成为一个图形对象句柄。


例如一 下代码将图像



读入


Matlab


R2009a


工作平台,读取数据矩阵变为变量

RGB




>>RGB =imread(



F:


< p>
)


9



武汉理工大学 《


Matlab


应用》课程设计说明书




需要注意的是,


对于索引图像来说,


即使调色板数据本身为


uint8


或< /p>


uint16


类型,


imread


函数仍然将颜色映像表读取,并存储到一个双精度浮点类型的数据中。





【例】



I=imread('E:');


%

图像数据的读取,将图像数据放入矩阵


A


中,颜色数据放入 矩阵


M




i mshow(I);title('


原图像


');




2-1 inread


举例说明




10



武汉理工大学《


Matlab


应用》课程设计说明书




3.3


图像文件的写入



Matlab R2009a


中,可用


imwrite


来完成图像文件的写入操作。其调用格式如下:



imwrite(A,filename,fmt)


imwirte(X,map,filename,fmt)


imwirte(



,filename)

< br>imwrite(



,Paraml,Vall,Par am2,Val2



)


第二条为其基 本调用格式。其中,


X


为索引图像名,


map


为调色板,


filename


为 写入文


件,


fmt


为存储格式。如果指 定的图像


X



uint8


或者


uint16


位的,那么


imwrite


将按指定的


格式显示原图像。如果

< p>
X


是双精度的,在用


uint8(X-1)


写图像时,


imwrite


函数将自动补偿阵


列的数值。



例如,以下语句将根据< /p>


MAP


格式(


Matlab


数据文件格式)装载图像,然后保存为一帧


包含小丑图像的

< br>JPG


文件:



>>load clown


>>imwrite(X,map,


< p>



)


此外,



Matlab R2009a


中,


显示一幅图像还可以用


image


函数,


这个函数将创建一个图


像对象句 柄,其调用格式如下:



image(C)


image(x,y,C)


image(x,y,C,



PropertyName



,PropetryValue,



)

< p>
image(



PropertyName



,PropertyValue,..)


handle=image(



) < /p>


其中,


x



y< /p>


分别表示图像显示位置的左上角坐标,


C


表示所需显示的图像。


函数


imagesc


image


函数类似,但是它可以自动标度输入数据。下 面是用


image


函数来显示一幅图像,


效果如图


3-2


所示。







11



武汉理工大学《


Matlab


应用》课程设计说明书





















3-2 image


函数显示图像




>>figure


ax(1)=subplot(1,2,1);


rgb=imread('E:');


image(rgb);title('RGB image')


ax(2)=subplot(1,2,2);


im=mean(rgb,3);


image(im);title('Intensity Heat Map')


colormap(hot(256))


linkaxes(ax,'xy')


axis(ax,'image')



12


-


-


-


-


-


-


-


-