MATLAB仿真软件进行图像的输入输出和格式变换.docx
- 文档编号:25574789
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:20
- 大小:303.09KB
MATLAB仿真软件进行图像的输入输出和格式变换.docx
《MATLAB仿真软件进行图像的输入输出和格式变换.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真软件进行图像的输入输出和格式变换.docx(20页珍藏版)》请在冰豆网上搜索。
MATLAB仿真软件进行图像的输入输出和格式变换
目录
摘要I
AbstractII
1图像文件格式及图像类型1
1.1MATLAB支持的几种图像文件格式:
1
1.2matlab几种图像类型2
2图像的输入4
3.图像的输入6
3.1以图像形式输出(图像的显示)6
3.1.1索引图像的显示6
3.1.2灰度图像的显示7
3.1.3二值图像的显示8
3.1.4RGB图像的显示8
3.2以图像文件的形式输出9
4图像的保存11
5图像类型转换13
5.1RGB转换成灰度图像13
5.2灰度图像转换为索引图像13
5.3灰度图像转化为二值图像14
5.4RGB图像转化为索引图像15
6课设总结16
参考文献17
附录18
附录1:
图像显示代码18
附录2:
图像转换代码19
摘要
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。
利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。
本次课程设计介就是Matlab环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换。
关键词:
MATLAB;图像处理;图像转换
Abstract
TheMathWorksInc.MATLABisaU.S.commercialmathematicssoftwareforalgorithmdevelopment,datavisualization,dataanalysisandnumericalcalculationseniortechnicalcomputinglanguageandinteractiveenvironment,includingMATLABandSimulinktwoparts.Asapowerfulscientificcomputingplatforms,itcanalmostsatisfyallthecalculationsthatneeds.MATLABitselfisapowerfultoolofdatavisualizationthatcandisplaydatathroughvariousforms,suchasgraylevelhistogram,contours,montagemixing,pixelanalysis,thelayertextureandtransformation.Withvisualgraphics,itcannotonlyevaluateimagecharacteristics,butalsoanalyzethedistributionofcolorimage.
ThecurriculumisdesignedtorefersomebasicimageprocessingoperationsMatlabenvironment,suchasread,saveanddisplayimagesofdifferentformatsandimageformatssuchasindexmutualtransformimages,grayscaleimages,RGBimageandbinaryimageconversion.
Keyword:
MATLAB;imageoperation;imageexchange
1图像文件格式及图像类型
1.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)。
1.2matlab几种图像类型
MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。
(1)索引图像:
它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。
色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。
(2)灰度图像:
数据矩阵中的元素值一般都在[0,1]或[0,255]之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。
灰度图像一般看起来是一副黑白图像,但是色彩明暗度较二值图像更为丰富。
因为每一个像素点的取值在[0,1]或[0,255]之间。
灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。
(3)二值图像:
数据矩阵中的元素值只是0或1。
读入matlab也是一个二维矩阵。
二值图像读入matlab中也是一个二维的平面矩阵,但像素点取值只限于0,1。
(4)RGB图像:
图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。
RGB图像就是采用红、绿、蓝作为三原色的,其中R为红色,G为绿色,B为蓝色。
这样这个三维矩阵A就可以表示成一个彩色矩阵,也就是一张数字图像可以在matlab中读成一个矩阵A。
这个三维矩阵的第一维就是上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为第三层代表蓝色数值。
也可以这样理解:
将索引图像中的数据矩阵中每一个像素点直接加载上色图矩阵中对应的颜色值。
双精度类:
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]
灰
度
图
像
图像数组大小:
m×n
图像元素值:
[0,1]
色度矩阵:
p×3
色度元素值:
[0,1]
图像数组大小:
m×n
图像元素值:
[0,255]
色度矩阵:
p×3
色度元素值:
[0,1]
图像数组大小:
m×n
图像元素值:
[0,65535]
色度矩阵:
p×3
色度元素值:
[0,1]
二
值
图
像
图像数组大小:
m×n
图像元素值:
0或1
图像数组大小:
m×n
图像元素值:
0或1
真
彩
图
像
数组大小:
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.2MATLAB集中图像类型
2图像的输入
MATLAB提供了一个重要的用于图像文件的读写的指令------从图像文件中读取数据的imread,
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,ICOandTIFFonly)
[…]=imread(…,’frames’,idx) (GIFonly)
[…]=imread(…,ref) (HDFonly)
[…]=imread(…,’BackgroundColor’,BG) (PNGonly)
[A,map,alpha]=imread(…) (ICO,CURandPNGonly)
上面一些参数的含义如下:
idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。
’frame’,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或’all’。
ref是指整数值。
alpha是指透明度。
程序如下:
I=imread('天呀.jpg');
或者是I=imread('C:
\\MATLAB\work\天呀.jpg','jpg');
图2.1图像的输入
3.图像的输入
3.1以图像形式输出(图像的显示)
以图像形式输出,其实质就是图像的显示。
函数为image(imshow).根据不同的图像形式,有一些不同的显示方法
.
图3.1图像输出的框图
3.1.1索引图像的显示
索引图像包含一个数据矩阵A,一个颜色映射矩阵map。
像素颜色内数据矩阵X作为索引值向矩阵map进行索引。
可以用下面代码来显示一幅索引图像:
image(A)
colormap(map).
程序:
I=imread('C:
\\MATLAB\work\suoyin.jpg','jpg');image(I);
colormap(map);
图3.1.1.1索引图像显示程序及图像
3.1.2灰度图像的显示
一幅灰度图像是一个数据矩阵I
1.imshow(I,[low,high])
以灰度范围[low,high]显示图像,如果不知道灰度范围,可以用imshow(I,[])显示。
程序:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
imshow(I,[]);
title(‘原图像’);
colorbar;
图3.1.2.1灰度图像显示程序及图像
2.imshow(I,n)
显示灰度级为n的图像,n缺省为256。
程序:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
imshow(I,256);
图3.1.2.2灰度图像显示程序及图像
3.1.3二值图像的显示
imshow(BW)显示二值图像。
程序:
BW=imread('C:
\\MATLAB\work\erzhi.jpg','jpg');
image(BW);
图3.1.3.1二值图像显示的程序及图像
3.1.4RGB图像的显示
imshow(RGB)显示真彩色图像。
程序:
RGB=imread('C:
\\MATLAB\work\dog2.jpg','jpg');
image(RGB);
图3.1.4.1RGB图像显示程序及图像
3.2以图像文件的形式输出
以图像文件的形式输出,其实质是图像文件形式之间的转换。
图3-8图像文件形式的输出框图
格式是:
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。
4图像的保存
图像的保存一般有四种方式:
1.文件保存
File→SaveAs,再选择保存为fig,egs,jpeg,gif,png,bmp等格式
图4.1文件保存
2.复制粘贴
Edit--->copyfigure,在粘贴其他程序。
图4.1复制保存
3.Saveas函数
saveas(h,'filename')
saveas(h,'filename','format')
saveas(gca,filename,fileformat)
如下图保存为文件figure1.jpg
图4.3saveas函数保存
4.print函数
print(h,'-dpng','filename')
如图print('-dpng','9.png')表示保存为png图片,文件名为9.png,
图4.4.Print函数保存
其中第一个参数可以是:
-dpng:
保存为png格式
-dpcx:
保存为pcx格式
-dpdf:
保存为pdf格式
-dtiff:
保存为tiff格式
-dbmp:
保存为bmp格式
-djpeg:
保存为jpeg格式
经过save和print后,保存到:
图4.5保存结果
5图像类型转换
图5.1图像类型转换框图
5.1RGB转换成灰度图像
程序:
I=imread('C:
\\MATLAB\work\天呀.jpg','jpg');
K=rgb2gray(I);
imshow(K);
图5.1RGB转换成灰度图像举例
5.2灰度图像转换为索引图像
程序:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
K=rgb2gray(I);
Y=gray2ind(K);
imshow(Y);
图5.2灰度图像转换为索引图像
5.3灰度图像转化为二值图像
程序:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
K=rgb2gray(I);
Y=im2bw(K);
imshow(Y);
图5.3灰度图像转化为二值图像举例
5.4RGB图像转化为索引图像
程序:
I=imread('天呀.jpg');
[X,map]=rgb2ind(I,3);
imshow(X,map);
图5.4RGB图像转化为索引图像
6课设总结
在这一次的学习、设计过程中我学会很多。
这次课程设计,让我充分利用所学过的理论知识还有自己想象的能力,让我们学习查找资料的方法。
通过课设,我认识到了matlab的功能非常强大,使得我们在使用的时候用户直接调用这些库函数并赋予实际参数就能解决实际问题,具有极高的编程效率。
我也熟悉了matlab的工作环境,可以很熟练的对matlab进行常规的操作,快速进行程序编程和仿真。
完成任务后才发现这次训练的内容并不算难。
首先要做的工作就是熟悉matlab中的各种库函数的格式和使用方法,其次就是针对具体图像进行操作,通过观察图像的质量等方面的问题,来了解变换的效果。
在这次课设中,我也发现了自己的缺陷。
而且我觉得通过这种课程设计来考验我们的动脑能力的教学方式很有效。
这样一方面激发了我们自主学习的兴趣,另一方面也巩固了学习到的理论知识,可以从实践中积累实际的经验,而不是老停留在理论学习的阶段。
当然这次设计学到的不仅仅是知识,还有如何去查阅资料。
如何去高质量的完成一份报告书等等。
我觉得这样的实践对我们现在的学习以及以后的工作都是很大的帮助,而且对我分析问题的方法也有很大的帮助,也使我考虑为难更加周到,更全面。
参考文献
[1]徐明远.MATLAB仿真在通信与电子工程中的应用.西安电子科技大学出版社,2005.6
[2]刘文耀.数字图像采集与处理.北京:
电子工业出版社.2007.
[3]王洪元.MATLAB语言以及在电子信息工程中的应用.北京:
清华大学出版社,2004
[4]贺兴华.MATLAB7.X图像处理.北京:
人民邮电出版社,2006.
[5]章毓晋.图像工程(上册).北京:
清华大学出版社.1999.
附录
附录1:
图像显示代码
1.索引图像的显示程序
I=imread('C:
\\MATLAB\work\suoyin.jpg','jpg');
image(I);
colormap(map);
2.灰度图像的显示程序
方式一:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
imshow(I,[]);
title(‘原图像’);
colorbar;
方式二:
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
imshow(I,256);
3.二值图像的显示程序
BW=imread('C:
\\MATLAB\work\erzhi.jpg','jpg');
image(BW);
4.RGB图像的显示程序
RGB=imread('C:
\\MATLAB\work\dog2.jpg','jpg');
image(RGB);
附录2:
图像转换代码
1.RGB转化为灰度图像程序
I=imread('C:
\\MATLAB\work\天呀.jpg','jpg');
K=rgb2gray(I);
imshow(K);
2.灰度转化为索引图像的程序
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
K=rgb2gray(I);
Y=gray2ind(K);
imshow(Y);
3.灰度转化为二值图像的程序
I=imread('C:
\\MATLAB\work\huidu.jpg','jpg');
K=rgb2gray(I);
Y=im2bw(K);
imshow(Y);
4.RGB转化为索引图像的程序
I=imread('天呀.jpg');
[X,map]=rgb2ind(I,3);
imshow(X,map);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 仿真 软件 进行 图像 输入输出 格式 变换