matlab课程设计 9.docx
《matlab课程设计 9.docx》由会员分享,可在线阅读,更多相关《matlab课程设计 9.docx(19页珍藏版)》请在冰点文库上搜索。
![matlab课程设计 9.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/ea48cd08-f539-4c9a-8733-86cea38de660/ea48cd08-f539-4c9a-8733-86cea38de6601.gif)
matlab课程设计9
学号:
武汉理工大学
课程设计
题目利用MATLAB仿真软件进行图像的输入、输出
和格式转换
学院信息工程学院
专业通信工程
班级
名指导老师刘新华
2013年6月10日
课程设计任务书
学生姓名:
专业班级:
指导教师:
刘新华工作单位:
信息工程学院
题目:
MATLAB仿真软件进行图像的输入、输出和格式变换
要求完成的主要任务:
matlab仿真软件进行图像的输入、输出和格式变换
要求:
读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、rgb图像和二值图像的相互转换
课程设计的目的:
1.理论目的
掌握图像输入、输出和格式变换的相关函数及算法编程
2.实践目的
学会输入输出各类图像,并可以将各种图像格式相互变换
时间安排:
序
号
阶段内容
所需时间
1
方案设计
2天
2
软件设计
3天
3
系统调试
2天
4
答辩
1天
合计
8天
指导教师签名:
年月日
系主任(或责任教师)签字:
年月日
目录
摘要Ⅰ
AbstractⅡ
1matlab所支持的图片格式和图像类型1
1.1matlab所支持的图片格式1
1.2matlab所支持的图像类型1
2图像的读取保存和显示3
2.1图像的读取3
2.2图像的保存5
2.2.1直接保存法5
2.2.2命令保存图片6
2.3图像的显示6
2.3.1imshow用来显示灰度图像6
2.3.2显示二值图像7
2.3.3显示索引图像8
2.3.4显示RGB图像9
3图像之间转换10
3.1图像文件形式之间的转换10
3.2图像类型的转换10
3.2.1RGB转换为灰度图像11
3.2.2灰度转换成索引图像11
3.2.3灰度转化为二值图像12
3.2.4RGB转换为索引图像12
课程总结13
参考文献14
摘要
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
本次课程设计就是读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换。
Abstract
MATLABisaU.S.mathworkscompanyreleasedamajorfaceofscientificcomputing,visualizationandinteractiveprogramdesignofhigh-techcomputingenvironment.Itnumericalanalysis,matrixcomputation,visualizationofscientificdataandnonlineardynamicsystemmodelingandsimulation,andmanyotherpowerfulfeaturesinaneasytouseintegratedWindowsenvironmentforscientificresearch,engineeringdesignandtheneedforeffectivenumericalcalculationofthemanyscientificfieldprovidesacomprehensivesolution,andlargelyoutofthetraditionalnon-interactiveprogramminglanguage(suchasC,Fortran)editingmode,whichrepresentsthecurrentinternationaladvancedlevelofscientificcomputingsoftware.
MATLABbasicunitofdataisamatrix,itsinstructionexpressionandmathematics,engineering,commonlyusedformsareverysimilar,souseMATLABtosolvingtheproblemthanwithC,FORTRANandotherlanguagesaccomplishthesamethingmoresimple,andalsoMATLABabsorbtheadvantagesofsoftwaresuchasMaple,soMATLABbecomeapowerfulmathematicalsoftware.InthenewversionalsoaddssupportforC,FORTRAN,C++,JAVAsupport
Thecourseisdesignedtoread,saveanddisplayimagesofdifferentformats,andimageformatssuchasindexmutualtransformimages,grayscale,RGBimagesandbinaryimageconversion
1matlab所支持的图片格式和图像类型
1.1matlab所支持的图片格式
①BMP格式
BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。
②GIF格式
GIF是英文GraphicsInterchangeFormat(图形交换格式)的缩写。
③JPEG格式
JPEG也是常见的一种图像格式,它由联合照片专家组(JointPhotographicExpertsGroup)开发并以命名为"ISO10918-1",JPEG仅仅是一种俗称而已。
JPEG文件的扩展名为.jpg或.jpeg,其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。
④TIFF格式
TIFF(TagImageFileFormat)是Mac中广泛使用的图像格式,它由Aldus和微软联合开发,最初是出于跨平台存储扫描图像的需要而设计的。
它的特点是图像格式复杂、存贮信息多。
正因为它存储的图像细微层次的信息非常多,图像的质量也得以提高,故而非常有利于原稿的复制。
⑤PCX格式
PCX格式是ZSOFT公司在开发图像处理软件Paintbrush时开发的一种格式,这是一种经过压缩的格式,占用磁盘空间较少。
由于该格式出现的时间较长,并且具有压缩及全彩色的能力,所以现在仍比较流行。
其余还有HDF,ICO,CUR,XWD,RAS,PBM,PGM,PPM等
1.2matlab所支持的图像类型
MATLAB支持图像类型:
二值图像、索引图像、灰度图像、RGB图像
二值图像:
是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。
二值图像中所有的像素只能从0和1这两个值中取,因此在MATLAB中,二值图像用一个由0和1组成的二维矩阵表示。
这两个可取的值分别对应于关闭和打开,关闭表征该像素处于背景,而打开表征该像素处于前景。
以这种方式来操作图像可以更容易识别出图像的结构特征。
二值图像操作只返回与二值图像的形式或结构有关的信息,如果希望对其他类型的图像进行同样的操作,则首先要将其转换为二进制的图像格式,可以通过调用MATLAB提供的im2bw()来实现。
索引图像:
是一种把像素值直接作为RGB调色板下标的图像。
索引图像可把像素值“直接映射”为调色板数值。
调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。
索引模式和灰度模式比较类似,它的每个象素点也可以有256种颜色容量,但它可以负载彩色。
灰度模式的图像最多只能有256种颜色。
当图像转换成索引模式时,系统会自动根据图像上的颜色归纳出能代表大多数的256种颜色,就象一张颜色表,然后用这256种来代替整个图像上所有的颜色信息。
索引的图像只支持一个图层,并且只有一个索引彩色通道。
索引模式的图像就像是一块块由彩色的小瓷砖所拼成的,由于它最多只能有256种彩色,所以它所形成的文件相对其它彩色要小得多。
索引模式的另一个好处是它所形成的每一个颜色都有其独立的索引标识。
当这种图像在网上发布时,只要根据其索引标识将图像重新识别,它的颜色就完全还原。
灰度图像:
一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。
红色、绿色、蓝色三个通道的缩览图都是以灰度显示的。
用不同的灰度色阶来表示“红,绿,蓝”在图像中的比重。
通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。
在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。
这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。
灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。
但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。
在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像。
RGB图像:
图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。
RGB图像就是采用红、绿、蓝作为三原色的,其中R为红色,G为绿色,B为蓝色。
这样这个三维矩阵A就可以表示成一个彩色矩阵,也就是一张数字图像可以在matlab中读成一个矩阵A。
2图像的读取保存和显示
2.1图像的读取
matlab中从图像文件中读取数据用函数imread()
已知matlab用矩阵的形式来储存数据
ex:
I=imread('E:
\matlab\123.jpg','jpg');%图像数据的读取
imshow(I);title('123');
图1图像的读取
按下enter运行后
图2图像的相关数据写入矩阵中
另外还可以用imfinfo()函数查看图像文件的信息
图3查看图像文件的信息
2.2图像的保存
保存图片的方法有直接保存和命令保存,这里我们先来介绍直接保存方法
2.2.1直接保存法
按下ctrl+s会出现保存项
会自动生成fig文件如图示
点击就自动读取了2.1中图像所保存的数据
图4直接保存法保存图像
然后生成fig文件
2.2.2命令保存图片
用print来保存文件
图5命令保存图像
然后在E盘则生成了一张与123.jpg一样的图
此外还可以用saveas函数来储存图片,不过此种方法容易发生错误,没有Print函数简便
2.3图像的显示
图像的显示需要用到imshow、colorbar和subimage三个函数
2.3.1imshow用来显示灰度图像
Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义
大小的调色板。
其调用格式如下:
imshow(I,[low,high])
其中,low和high分别为数据数组的最小值和最大值
Ex:
I=imread('E:
\matlab\111.jpg','jpg');
imshow(I,[5599])
图6显示灰度图像
2.3.2显示二值图像
Ex;BW=imread('E:
\matlab\222.jpg','jpg');
imshow(BW)
图7显示二值图像
2.3.3显示索引图像
索引图像包含一个数据矩阵A,一个颜色映射矩阵map。
像素颜色内数据矩阵X作为索引值向矩阵map进行索引。
可用image和colormap来显示一个索引图像
EX:
I=imread('E:
\matlab\444.jpg','jpg');
image(I);
colormap(maps);
图8显示索引图像
2.3.4显示RGB图像
用函数imshow(RGB);
Ex:
RGB=imread('E:
\matlab\555.jpg','jpg');
imshow(RGB);
图9显示rgb图像
3图像之间转换
3.1图像文件形式之间的转换
格式是
imwrite(A,’filename’,’fmt’)保存无调色板的图像
imwrite(X,map,’filename’,’fmt’)保存有调色板的图像
imwrite(…,’filename’)文件名中含格式
mwrite(…,Param1,Vall,Param2,Val2,…)指定保存参数
其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。
在MATLAB中,默认的保存类型是uint8。
由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。
文件格式:
bmp、jpg、pcx、tif。
如把gtf变为jpg需要用到imwrite函数
[x,map]=imread('777.tif');
imwrite(x,map,'777.jpg','JPG','Quality',75)
3.2图像类型的转换
图像类型转换函数
函数名函数功能
Dither将灰度图变成二值图,或将真彩色图像抖动成索引色图像
gray2ind将灰度图像转换成索引图像
Grayslice通过设定阈值将灰度图像转换成索引色图像
im2bw通过设定亮度阈值将真彩色、索引色、灰度图转换成二值图
ind2gray将索引色图像转换成灰度图像
ind2rgb将索引色图像转换成真彩色图像
rgb2gray将一副真彩色图像转换成灰度图像
rgb2ind将真彩色图像转换成索引色图像
下面举几个常见的例子进行说明
3.2.1RGB转换为灰度图像
用到函数rgb2gray
I=imread('E:
\matlab\555.jpg','jpg');
K=rgb2gray(I);
imshow(K);
图10rgb转换为灰度图像
3.2.2灰度转换成索引图像
I=imread('E:
\matlab\555.jpg','jpg');
K=rgb2gray(I);
Y=gray2ind(K);
imshow(Y);
图11灰度转换成索引图像
3.2.3灰度转化为二值图像
I=imread('E:
\matlab\555.jpg','jpg');
K=rgb2gray(I);
Y=im2bw(K);
imshow(Y);
图12灰度转换为二值图像
3.2.4RGB转换为索引图像
I=imread('E:
\matlab\555.jpg','jpg');
[X,map]=rgb2ind(I,4);
图13rgb转换为索引图像
课程总结
经过一个多星期的努力,我终于做完了我人生中第一次课程设计。
经过这段时间的学习,我感触颇深,首先,这个课程设计并不容易,起初接触matlab的时候我什么都不会,为此我查阅了相关资料才对这个强大的软件有所了解,为此也增强了我自主学习和查阅资料的能力。
这周的学习让我掌握了matlab的最基础的用法,我现在可以对matlab进行一系列的简单常规操作,进行简单的编程和仿真设计。
通过这次课程设计我也认识到了自己的诸多不足之处,比如说我的自主学习能力不是很强,没有老师的讲解然后进行学习还是有一些困难的,我们不仅要掌握相关理论知识,还要自己动手实践,这样才可以学到真知识。
我相信在以后的课程设计中我可以做的更好!
!
参考文献
刘文耀.数字图像采集与处理.北京:
电子工业出版社.2007.
贺兴华.MATLAB7.X图像处理.北京:
人民邮电出版社,2006
李文锋.图形图像处理与应用.北京:
中国标准出版社,2006
王华等.MATLAB电子仿真与应用教程.北京:
国防工业出版社,2001
本科生课程设计成绩评定表
姓名
性别
男
专业班级
题目:
MATLAB仿真软件进行图像的输入、输出和格式变换
答辩或质疑记录:
1.什么叫做灰度图像
答.用不同的灰度色阶来表示“红,绿,蓝”在图像中的比重的图像。
2.怎么样把真彩图像转换为索引图像
答.rgb2ind将真彩色图像转换成索引色图像
3.imread是什么意思
答.读取图像所用的函数
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
__________________
年月日