数据压缩实验指导书

2019-04-16 17:52

《数据压缩》实验指导书(24学时)

实验一 图像输入与输出基本操作(2学时) 实验二 图像预测编码(3学时) 实验三 图像熵编码与压缩(3学时) 实验四 图像DCT变换编码与压缩(4学时) 实验五 图像小波变换编码与压缩(4学时) 实验六 JPEG编解码(4学时) 实验七 矢量量化图像压缩(4学时)

实验一 图像输入与输出基本操作

一、实验题目:

图像输入与输出操作

二、实验目的

学习在MATLAB环境下对图像文件的I/O操作,为读取各种格式的图像文

件和后续进行图像处理打下基础。

三、实验内容

利用MATLAB为用户提供的专门函数从图像格式的文件中读/写图像数据、显示图像,以及查询图像文件的信息。 四、预备知识

熟悉MATLAB开发环境。

五、实验原理

(1)图像文件的读取

利用imread函数可以完成图像文件的读取操作。常用语法格式为: I=imread(‘filename’,‘fmt’)或I=imread(‘filename.fmt’);

其作用是将文件名用字符串filename表示的、扩展名用字符串fmt(表示图像文件格式)表示的图像文件中的数据读到矩阵I中。当filename中不包含任何路径信息时,imread会从当前工作目录中寻找并读取文件。要想读取指定路径中的图像,最简单的方法就是在filename中输入完整的或相对的地址。MATLAB支持

多种图像文件格式的读、写和显示。因此参数fmt常用的可能值有:

‘bmp’ Windows位图格式 ‘jpg’or‘jpeg’ 联合图像专家组格式 ‘tif’or‘tiff’ 标志图像文件格式 ‘gif’ 图形交换格式 ‘pcx’ Windows画刷格式 ‘png’ 可移动网络图形格式 ‘xwd’ X Window Dump格式 例如,命令行 >>I=imread(‘lena.jpg’);

将JPEG图像lena读入图像矩阵I中。 (2) 图像文件的写入(保存)

利用imwrite完成图像的输出和保存操作,也完全支持也完全支持上述各种 图像文件的格式。其语法格式为:

imwrite(I,‘filename’,‘fmt’)或imwrite(I,‘filename.fmt’); 其中的I、filename和fmt的意义同上所述。

注意事项:当利用imwrite函数保存图像时,MATLAB默认的保存方式是将其简化为uint8的数据类型。与读取文件类型类似,MATLAB在文件保存时还支持16位的PNG和TIFF图像。所以,当用户保存这类文件时,MATLAB就将其存储在uint16中。 (3)图像文件的显示

图像的现实过程是将数字图像从一组离散数据还原为一幅可见图像的过程。 MATLAB的的图像处理工具箱提供了多种图像显示技术。例如imshow可以直接从文件显示多种图像;image函数可以将矩阵作为图像 ;colorbar函数可以用来显示颜色条;montage函数可以动态显示图像序列。这里仅对常用的显示函数进行介绍。

①图像的显示

imshow函数是最常用的显示各种图像的函数,其调用格式如下:

imshow(I,N);

imshow(I,N)用于显示灰度图像,其中I为灰度图像的数据矩阵,N为灰度级

数目,默认值为256。

例如下面的语句用于显示一幅灰度图像: >> I=imread(‘lena.jpg’); >> imshow(I);

如果不希望在显示图像之前装载图像,那么可以使用以下格式直接进行图像

文件的显示:

imshow filename

其中,filename为要显示的图像文件的文件名。 实例1-1 显示一幅在当前目录下的.bmp格式的图像: >>imshow lena.jpg 显示结果如图1.1所示。 图1.1.1 显示一幅图像文件中的图像

注意事项:该文件名必须带有合法的扩展名(指明文件格式),且该图像文件必须保存在当前目录下,或在MATLAB默认的目录下。

②添加色带

colorbar函数可以给一个坐标轴对象添加一条色带。如果该坐标轴对象包含一个图像对象,则添加的色带将指示出该图像中不同颜色的数据值。这对于了解被显示图像的灰度级特别有用。其调用格式为:

colorbar

实例1-2

>> I=imread(‘lena.jpg’); >> imshow(I); >> colorbar;

图1.1.2 显示图像并加入颜色条

从上图可知,该图像是数据类型为uint8的灰度图像,其灰度级范围从0 -255。

③显示多幅图像

显示多幅图像最简单的方法就是在不同的图形窗口中显示它们。imshow总

是在当前窗口中显示一幅图像,如果用户想连续显示两幅图像,那么第二幅图像就会替代第一幅图像。为了避免图像在当前窗口中的覆盖现象,在调用imshow函数显示下一幅图像之前可以使用figure命令来创建一个新的窗口。例如:

imshow(I1); figure, imshow(I2); figure, imshow(I3);

有时为了便于在多幅图像之间进行比较,需要将这些图像显示在一个图形

窗口中。达到这一目的有两种方法:一种方法是联合使用imshow和subplot函数,但此方法在一个图形窗口只能有一个调色板;另一种方法是联合使用subimage和subplot函数,此方法可在一个图形窗口内使用多个调色板。

subplot函数将一个图形窗口划分为多个显示区域,其调用格式如下:

subplot(m,n,p)

subplot函数将图形窗口划分为m(行)×n(列)个显示区域,并选择第p个区域作为当前绘图区。

例1-3 用两排显示四幅图像,可以使用以下语句: >> I1=imread(‘lena.bmp’);

>> I2=imread(‘gs256.bmp’); >> I3=imread(‘lena.bmp’); >> I4=imread(‘gs256.bmp’); >> subplot(2,2,1), imshow(I1); >> subplot(2,2,2), imshow(I2); >> subplot(2,2,3), imshow(I3); >> subplot(2,2,4), imshow(I4);

图1.1.3 在一个图形窗口中显示多幅图像

(4) 图像文件信息的查询

imfinfo函数用于查询图像文件的有关信息,详细地显示出图像文件的各种属性。其语法格式为:

info=imfinfo(‘filename’,‘fmt’)或info=imfinfo(‘filename.fmt’) 或imfinfo filename.fmt

imfinfo函数获取的图像文件信息依赖于文件类型的不同而不同,但至少应包 含以下内容:

文件名。如果该文件不在当前目录下,还包含该文件的完整路径。 文件格式。 文件格式的版本号。 文件最后一次修改的时间。


数据压缩实验指导书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Levis牛仔裤型介绍

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: