指导教师评语 成 绩 批阅人
日 期
实 验 报 告
(201 /201 学年 第 学期)
课程名称 实验名称
图像的输入与输出
实验时间 实验室 指导教师
年
月
日
学生姓名 班 级
学 号 专 业
实 验 报 告
实验名称 实验类型 软件 图像的输入与输出 指导教师 实验学时 实验时间
(软件、硬件) 一、 实验目的和要求 1、学习在MATLAB环境下对图像文件的I/O操作,为读取各种格式的图像文件和后续进行图像处理打下基础。 2、利用MATLAB为用户提供的专门函数从图像格式的文件中读写图像数据、显示图像。 3、学习数字图像的计算机描述和存储格式,熟悉MATLAB环境下图像的类型及其转换,熟练掌握图像输入输出的基本技术。 二、实验环境(实验设备) 硬件:计算机 软件:MATLAB R2016b 三、实验内容及原理(包括硬件原理图、算法、逻辑框图,关键代码等,可续页) (一)图像文件的读取 利用imread函数可以完成图像文件的读取操作。常用语法格式为: I=imread(‘filename’,‘fmt’) 或 I=imread(‘filename.fmt’); 其作用是将文件名用字符串filename表示的、扩展名用字符串fmt(表示图像文件格式)表示的图像文件中的数据读到矩阵I中。当filename中不包含任何路径信息时,imread会从当前工作目录中寻找并读取文件。要想读取指定路径中的图像,最简单的方法就是在filename中输入完整的或相对的地址。MTTLAB支持多种图像文件格式的读、写和显示。因此参数fmt常用的可能值有: bmp jpg或jpeg tif或tiff gif pcx png xwd Windows位图格式 联合图像专家组格式 标志图象文件格式 图形交换格式 Windows画刷格式 可移动网络图形格式 X Windows Dump格式 例如,命令行: 将jpg图像dragon读入图像矩阵I中。 3
(二)图像文件的写入(保存) 利用imwrite完成图像的输出和保存操作,也完全支持上述各种图像文件的格式。其语法格式为: Imwrite(I,‘filename’,fnt)或 Imwrite(I,‘filename.fmt’); 注意:当利用imwrite函数保存图像时,MATLAB默认的保存方式是将其简化为unit8的数据类型。与读取文件类型类似,MATLAB在文件保存时还支持16位的png和tiff图像。所以当用户保存这类文件时,MATLAB就将其存储在unit16中。 例如,命令行: (三)图像文件的显示 图像的显示过程是将数字图像从一组离散数据还原为一副可见图像的过程。 MATLAB的图像处理工具箱提供了多种图像显示技术。例如imshow可以直接从文件显示多种图像;image函数可以将矩阵作为图像;colorbar函数可以用来显示颜色条;montage函数可以动态显示图像序列。 几种常用的显示函数: 4
1imshow函数是最常用的显示各种图像的函数,其调用格式如下: ○imshow(I,N); imshow(I,N)用于显示灰度图像,其中I为灰度图像的数据矩阵,N为灰度级数目,默认值为256。 例如,命令行: 显示结果如图所示: 5
2添加色带 ○colorbar函数可以给一个坐标轴对象添加一条色带。如果该坐标轴对象包含一个图像对象,则添加的色带将指示出该图像中不同颜色的数据值。其调用格式为: colorbar; 例如,命令行: 6
3显示多幅图像 ○显示多幅图像最简单的方法就是在不同的图形窗口中显示它们。imshow总是在当前窗口中显示一幅图像,如果用户想连续显示两幅图像,那么第二幅图像就会替代第一幅图像。为了避免图像在当前窗口中的覆盖现象,在调用imshow函数显示下一幅图像之前可以使用figure命令来创建一个新的窗口。其调用格式为: imshow(I1); figure,imshow(I2); figure,imshow(I3); 例如,命令行: 7
有时为了便于在多幅图像之间进行比较,需要将这些图像显示在一个图形窗口中。达到这一目的有两种方法:一种是联合使用imshow和subplot函数,但此方法在一个图形窗口只能有一个调色板;另一种是联合使用subimage和subplot函数,此方法可在一个图形窗口内使用多个调色板。 subplot函数将一个图形窗口划分为多个显示区域,其调用格式如下: subplot(m,n,p); subplot函数将图形窗口划分为m(行)×n(列)个显示区域,并选择第p个区域作为当前绘图区。 例如,命令行: 8
4图像文件信息的查询 ○imfinfo函数用于查询图像文件的有关信息,详细地显示出图像文件的各种属性。其语法格式为: info=imfinfo(‘filename’,‘fmt’)或 info=imfinfo(‘filename.fmt’)或 imfinfo filename.fmt infinfo函数获取的图像文件信息依赖于文件类型的不同而不同,但至少应包含一下内容: 文件名。如果该文件不在当前目录下,还包含该文件的完整路径。 文件格式。 文件格式的版本号。 文件最后一次修改的时间。 文件的大小。以字节为单位。 图像的宽度。 图像的高度。 每个像素所用的比特数。也叫像素深度。 图像类型。即该图像是真彩色图像、索引图像还是灰度图像。 例如,命令行: 9
实 验 报 告
四、实验小结(包括问题和解决方法、实验结果分析、心得体会等
10