收藏 分享(赏)

基于MATLAB图像变换及压缩编码.doc

上传人:gnk289057 文档编号:4321097 上传时间:2018-12-23 格式:DOC 页数:26 大小:739KB
下载 相关 举报
基于MATLAB图像变换及压缩编码.doc_第1页
第1页 / 共26页
基于MATLAB图像变换及压缩编码.doc_第2页
第2页 / 共26页
基于MATLAB图像变换及压缩编码.doc_第3页
第3页 / 共26页
基于MATLAB图像变换及压缩编码.doc_第4页
第4页 / 共26页
基于MATLAB图像变换及压缩编码.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、附件 1:学 号: 0120818700223课 程 设 计题 目 MATLAB 课程设计 学 院 信息工程学院专 业 通信工程专业班 级 通信 0806 班姓 名 邱 帆指导教师 郭志强2010 年 12 月 15 日附件 2:课程设计任务书学生姓名: 邱 帆 专业班级: 通信 0806 指导教师: 郭志强 工作单位: 武汉理工大学 题 目: 基于 MATLAB 图像变换及压缩编码 初始条件:1) MATLAB2009 软件2) MATLAB 图像处理相关书籍3) 数字信号处理与图像处理基础知识要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1) 读入图像并

2、对图像进行傅利叶变换、小波变换、小波包变换、离散余弦变换、离散沃尔什变换,二维哈达玛变换。2) 分别采用小波变换和离散余弦变换对图像进行压缩,并与原图像进行比较。时间安排:第 12 周:安排任务,分组第 13-14 周:设计仿真,撰写报告第 15 周:完成设计,提交报告,答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘 要 .IAbstract II1 图像变换 .11.1 傅立叶变换 11.1.1MATLAB 提供的快速傅立叶变换的函数 .11.1.2 二维傅立叶变换的 MATLAB 实现 21.2 小波变换 .31.2.1 MATLAB 提供的小波变换函数 31

3、.2.2 小波变换的 MATLAB 实现 71.3 小波包变换 .81.4 离散余弦变换 .101.4.1MATLAB 提供的 DCT 变换函数 .101.4.2 离散余弦变换的 MATLAB 实现 .111.5 离散沃尔什和哈达玛变换 121.5.1MATLAB 提供的哈达玛变换函数 .131.5.2 沃尔什 哈达玛变换的 MATLAB 实现 .132 图像压缩 .142.1 基于小波变换的图像压缩 142.2 基于离散余弦变换的图像压缩 163 总结 .19参考文献 .20武汉理工大学matlab课程设计说明书I摘 要MATLAB 是目前在国际上被广泛接受和使用人科学与工程计算软件。它由原

4、来只是为了更简单更快捷地解决矩阵运算发展成目前的一种集数值运算、符号运算、数据可视化、图形界面设计、程序设计、仿真等多种功能与一体的集成软件。本次课程设计的目的在于较全面了解常用的数字图像变换与压缩的原理及方法,能够运用相关软件进行模拟分析。通过对采集的数字图像进行进行各种变换,最后进行压缩处理,从而达到本次课程设计的目的。关键词:MATLAB 数据数字图像处理 变换武汉理工大学matlab课程设计说明书IIAbstractMATLAB is widely accepted in the international arena and the use of human science and

5、engineering calculation software. It originally only for a simpler and more efficient solution to the current matrix operations into a set of numerical computation, symbolic computation, data visualization, graphical interface design, process design, simulation and other functions with one integrate

6、d software. This course is designed to comprehensively understand common digital image transformation and compression of principle and method, can use the relevant software is simulated and analyzed. Through the acquisition of the digital image for all kinds of transform, finally compression process

7、ing, thus achieve the purpose of this course design.Keywords: MATLAB data digital image processing transform武汉理工大学matlab课程设计说明书11 图像变换为了有效地和快速地对图像进行处理和分析,常常需要将原定义在图像空间的图像以某种形式转换到另外一些空间,并利用在这些空间的特有的性质方便地进行一定的加工,最后再转换回图像空间以得到所需要的效果。这种使图像处理简化的方法通常是对图像进行变换。图像变换技术在图像增强、图像恢复和有效的减少图像数据,进行数据压缩以及特征抽取等方面都有着十分

8、重要的作用。下面将对图像进行傅利叶变换、小波变换、小波包变换、离散余弦变换、离散沃尔什变换,二维哈达玛变换。1.1 傅立叶变换在图像处理的广泛领域中,傅立叶变换起着非常重要的作用,包括图像的效果增强、图像分析、图像复原和图像压缩等。在图像数据的数字处理中常用的是二维离散傅立叶变换,他能把空间域的图像转变到空间频域上进行研究,从而能很容易地了解到图像的各空间频域成分,进行相应处理。1.1.1MATLAB 提供的快速傅立叶变换的函数在 MATLAB 中,提供了 fft 函数、fft2 函数和 fftn 函数分别用于进行一维 DFT、二维 DFT 和 N 维 DFT 的快速傅立叶变换;ifft 函数

9、、 ifft2 函数和 ifftn 函数分别用于进行一维 DFT、二维 DFT 和 N 维 DFT 的快速傅立叶反变换。下面分别对会用到的几种函数给予介绍。(1) fft2 函数该函数是用于计算二维快速傅立叶变换,其语法格式为:Bfft2(I)其功能是:返回图像 I 的二维 fft 变换矩阵,输入图像 I 和输出图像 B 大小相同。B=fft2(I,m,n)其功能是:通过对图像 I 剪切或补零,按用户指定的点数计算 fft 返回 B 的大小为m*n。很多 MATLAB 图像显示函数无法显示复数图像,为了观察图像傅立叶变换后的结果,应对变换后的结果求模,方法是对变换结果调用 abs 函数。武汉理

10、工大学matlab课程设计说明书2(2) fftshift 函数该函数是用于将变换后图像频谱中心从矩阵的原点移到矩阵的中心,其语法格式为:B=fftshift(I)Fftshift(I)可以用于调整 fft、fft2 和 fftn 的输出结果。对于向量, fftshift(I)将 I 的左右两半交换位置;对于 I,fftshift(I)将 I 的一、三象限和二、四象限进行互换;对于高维矢量,fftshift(I) 将矩阵各维的两半进行互换。(3) ifft2 函数该函数用于计算图像的二维傅立叶反变换矩阵,输入图像 I 和输出图像 B 大小相同。Bifft2(I)其功能是:返回图像 I 的二维傅

11、立叶反变换矩阵,输入图像 I 和输出图像 B 大小相同。B=ifft2(I,m,n)其功能是:通过对图像 I 剪切或补零,按用户指定的点数计算二维傅立叶反变换,返回矩阵 B 的大小为 m*n。通常输出矩阵 B 为复数图矩阵,如果要求模,需调用 abs函数。1.1.2 二维傅立叶变换的 MATLAB 实现傅立叶变换程序如下:a=imread(cameraman.tif); 装入图像figure,subplot(1,2,1)imshow(a); 显示图像title(原图像)B=fft2(a); 进行傅立叶变换C=fftshift(B); 将变换后图像频谱中心从矩阵的原点移到矩阵中心subplot(

12、1,2,2)武汉理工大学matlab课程设计说明书3imshow(log(abs(C),),colormap(jet(64),colorbar; 显示变换后的系数分布title(傅立叶变换后的系数分布)运行结果如图 1 所示。图 1 二维傅立叶变换图由上图可知,图中心的系数最高且高于 10,外侧的值比内侧的值低且略高于 10,图像的大部分的系数是低于 10 的,约为 78,且分布在周围。1.2 小波变换小波变换是当前应用数学中一个迅速发展的领域,是分析和处理非平稳信号的一种有力工具。它是以局部化函数所形成的小波基作为基底展开的,具有许多特殊的性能和优点,小波分析是一种更合理的进频表示和子带多分

13、辨分析。1.2.1 MATLAB 提供的小波变换函数MATLAB 小波分析工具箱提供了很多用于小波分解、重构的函数,下面对重要的二维小波分析函数进行介绍。通常处理的图像很多为索引图像,图像矩阵各元素表示的是调色板中的序号。而小波分析是对数值进行分析的,因此要将索引图像进行编码,进行小波才有实际意义。MATLAB 提供了 wcodemat 函数耿对图像进行编码和与一维小波变换的函数有着一一对应关系的二维离散小波变换函数,下面简单介绍如下:武汉理工大学matlab课程设计说明书4(1) wcodemat 函数该函数用于对索引图像的数据矩阵进行编码,其语法格式为:Y=wcodemat(X,NB,OP

14、T,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)其功能是:对索引图像的数据进行矩阵 X 进行编码, Y 为编码返回值。NB 是最大编码值,决定了编码范围是 0NB,默认值为 16。OPT 指定编码方式,其含义为:当OPT=row时,对图像按照行进行编码;当 OPT=col时,对图像按照列进行编码;当OPT=mat时,对图像进行按照整个矩阵进行编码; OPT 的默认值为mat。ABSOL 决定返回矩阵的类型,当 ABSOL=0 时,返回编码矩阵;当 ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)。(2) dwt2 函数该函

15、数实现二维离散小波变换,其语法格式为:cA,cH;cV,cD=dwt2(X,wname)其功能是:使用指定的小波基函数wname对图像 X 进行二维离散小波变换,cA, cH,cV ,cD 分别为图像分解的近似分量、水平分理、垂直分量和细节分量。cA,cH;cV,cD=dwt2(X,Lo_D,Hi_D)其功能是:使用指定的低能和高能滤波器组 Lo_D,Hi_D 对图像进行二维离散小波变换。(3) idwt2 函数该函数可以实现二维离散小波反变换,其语法格式为:X=idwt2(cA,cH;,cV,cD,wname)其功能是:利用小波分解得到的 cA,cH ,cV,cD 分量进行二维离散小波反变换

16、得到原始图像,wname 函数指定二维小波反变换采用的小波基函数。X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)其功能是:利用小波分解得到的 cA,cH ,cV,cD 分量进行二维离散小波反变换得到原始图像,Lo_R,Hi_R 为指定的重构滤波器组。X=idwt2(cA,cH;,cV,cD,wname,S)武汉理工大学matlab课程设计说明书5X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)其功能是:返回二维离散小波反变换结果的中间附近 S 个点的值。(4) wavedec2 函数该函数是用于二维图像进行多层小波分解,其语法格式为:C,S=wavedec2(X,

17、N,wname)其功能是:使用指定的小波基函数 wname 对图像 X 进行 N 层二维离散小波分解。C,S=wavedec2(X,N,Lo_D,Hi_D)其功能是:使用指定的低通和高通滤波器组 Lo_D,Hi_D 对图像 N 层二维离散小波分解。(5) waverec2 函数该函数用于二维图像的多层小波重构,其语法格式为:X=waverec2(C,S,wname)其功能是:利用二维小波分解得到的数据 C 和长度矢量 S 重构原始图像 X,所以用小波基函数由 wname 决定。X=waverec2(C,S,Lo_R,Hi_R)其功能是:使用指定的重构滤波器组 Lo_R,Hi_R 重构原始图像

18、X。(6) appcoef2 函数该函数用来提取二维图像小波分解的近似分量,其语法格式为:A=appcoef2(C,S,wname)A=appcoef2(C,S,wname,N)其功能是:利用二维离散小波分解 wavedec2 函数产生的多层小波分解结构 C 和 S提取图像第 N 层的近似分量,wname 为指定的小波基函数的名称,N 的默认值为N=size(S(1,: )2,即为长度 S 的行数减去 2。A=appcoef2(C,S,Lo_R,Hi_R,N)A=appcoef2(C,S,Lo_R,Hi_R)其功能是:使用指定的重构滤波器组 Lo_R,Hi_R 提取第 N 层的近似分量,其中参

19、数的含义与上面语法格式相同。(7) detcoef2 函数武汉理工大学matlab课程设计说明书6该函数是用来提取二维图像小波分解的细节分量,其语法格式为:D=detcoef2(O,C,S,N)其功能是:利用 wavedec2 函数产生的多层小波分解结构 C 和 S 来提取图像第 N层的近似分量。O 指定细节图像的类型,当 O=d时,重构对角细节图像;当 O=h时,重构水平细节图像;当 O=v时,重构垂直细节图像。(8) upcoef2 函数该函数是用于利用多层小波分解重构近似分量或细节分量,其语法结构为:Y=upcoef2(O,X,wname)Y=upcoef2(O,X,wname,N)Y=

20、upcoef2(O,X,wname,N,S)其功能是:由二维离散小波变换系数重构原始图像的近似信号或细节,参数 O 指定细节的类型,即:当 O=a时,重构近似信号,即 X 是第 N 层的近似系数;当 O=h时,重构水平细节图像,即 X 是第 N 层的水平细节系数;当 O=v时,重构垂直细节图像,即 X 是第 N 层的垂直细节系数;当 O=d时,重构对角细节分信号,即 X 是第N 层的对角细节系数。Wname 是使用的小波基函数的名称,N 指定重构的次数。若 N 未指定,则N1。Y=upcoef2(O,X,Lo_R,Hi_R)Y=upcoef2(O,X,Lo_R,Hi_R,N)Y=upcoef2

21、(O,X,Lo_R,Hi_R,N,S)其功能与上面类同,只是使用指定的重构滤波器组,Lo_R,Hi_R 来重构原始信号的近似信号和细节信号。(9) wrcoef2 函数该函数是实现由多层二维小波分解来生重构某一层的分解图像,其语法格式为:X=wrcoef2(type,C,S,wname,N)X=wrcoef2(type,C,S,Lo_R,Hi_R)其功能是:用多层小波分解得到的 C 和 S 重构第 N 层的分解图像,N 不指定时,采用 N=size(S(1,:)-2。经过重构,返回图像与原始图像大小相同。Wname 为指定的小波基函数;武汉理工大学matlab课程设计说明书7Lo_R,Hi_R

22、 为指定的滤波器组。Type 决定重构分量的类型,其含义是:当 type=a时,重构近似信号;当 type=h时,重构水平分量;当 type=v时,重构垂直分量;当 type=d时,重构细节分量。X=wrcoef2(type,C,S,wname)X=wrcoef2(type,C,S,Lo_R,Hi_R)其功能是与上面类同,只是 N 为缺少,N=size(S(1:)-2 。(10)upwlev2 函数该函数实现二维图像小波分解的单层重构,其语法格式为:NC,NS,cA=upwlev2(C,S,wname)其功能是:利用 wavedec2 函数产生的多层小波分解结构 C,S 来重构上一层的分解结构

23、 NC,NS。同时还返回上一层的近似分量 cA,所用的小波基由 wname 为指定。NC,NS,cA=upwlev2(C,S, S,Lo_R,Hi_R)其功能是:使用指定的重构滤波器组 S,Lo_R,Hi_R 来重构上一层小波分解结构,NC,NS,同时还返回上一层近似分量 cA。1.2.2 小波变换的 MATLAB 实现小波变换程序如下:X=imread(cameraman.tif); 读入图像 imshow(X);对图像进行小波分解,得到近似分量和细节分量、cA1,cH1,cV1,cD1 = dwt2(X,bior3.7); A1 = upcoef2(a,cA1,bior3.7,1); H1

24、 = upcoef2(h,cH1,bior3.7,1);V1 = upcoef2(v,cV1,bior3.7,1);D1 = upcoef2(d,cD1,bior3.7,1);subplot(2,2,1); image(wcodemat(A1,192);title(Approximation A1)subplot(2,2,2); image(wcodemat(H1,192);武汉理工大学matlab课程设计说明书8title(Horizontal Detail H1)subplot(2,2,3); image(wcodemat(V1,192);title(Vertical Detail V1)

25、subplot(2,2,4); image(wcodemat(D1,192);title(Diagonal Detail D1)运行结果如图 2 所示。图 2 小波变换图1.3 小波包变换小波包分解是在小波基础上发展的,比小波分解更高级,对信号的分解重构更能体现多分辨率的特征。为了克服小波分解在高频段的频率分辨率较差,而在低频段的时间分辨率较差的缺点,人们在小波分解的基础上提出了小波包分解。小波包分解提高了信号的时频分辨率。是一种更精细的信号分析方法。小波包方法是小波分解的推广,它提供了更丰富的信号分析方法。小波包元素是由三个参数确定波形,分别是:位置、尺度和频率。对一个给定的正交小波函数,可

26、以生成一组小波包基。每一个小波包基里提供一种特定的信号分析方法,它可以保存信号的能量并根据特征进行精确武汉理工大学matlab课程设计说明书9的重构。小波包可以对一个给定的信号进行大量不同的分解。在正交小波分解过程中,一般是将低频系数分解为两部分。分解后得到一个近似系数向量和一个细节系数向量。在两个连续的近似系数中丢失的信息可以在细节系数中得到。下一步是将近似系数向量进一步分解为两个部分,而细节系数向量不再分解。在小波包分解中,每一个细节系数向量也使用近似系数向量分解同样的分法分为两部分。小波包程序如下:load bust 载入原始图像init=2055615866; 加入含噪randn(se

27、ed,init);X1=X+20*randn(size(X);subplot(2,2,1);image(X1);colormap(map);axis square;title(原始图像);T=wpdec2(X1,1,db4); 利用小波 db4 对图像 X 进行一层小波包分解A=wprcoef(T,1 0); 重构图像近似部分subplot(2,2,2);image(A);axis square;title(一层小波包分解后的图像); %检测边缘%原始图像的边缘检测B1=edge(A,sobel);subplot(2,2,3);imshow(B1);axis square;title(原始图像

28、边缘检测); %图像近似部分的边缘检测B2=edge(X1,sobel);subplot(2,2,4),imshow(B2);axis squaretitle(图像近似部分边缘检测);运行结果如图 3 所示。武汉理工大学matlab课程设计说明书10图 3 小波包变换图1.4 离散余弦变换离散余弦变换的变换核为余弦函数,计算速度较快,有利于图像压缩和其他处理。在大多数情况下,离散余弦变换(DCT)用于图像的压缩操作中。JPEG 图像格式的压缩算法采用的是 DCT。1.4.1MATLAB 提供的 DCT 变换函数(1) dct2 函数该函数用于实现图像的二维离散余弦变换,其语法格式为:B=dct

29、2(A)其功能是:返回图像 A 的二维离散余弦变换值,它的大小与 A 相同,且各元素为离散余弦变换的系数 F( k1,k2) 。B=dct2(A,m,n)B=dct2(A,m n)其功能是:在对图像 A 进行二维离散余弦变换之前,先将图像 A 补零到 m*n。如武汉理工大学matlab课程设计说明书11果 m 和 n 比图像 A 小,则进行之前,将 A 剪切。(2) idct2 函数该函数用于实现图像的二维离散余弦反变换,其语法格式为:B=idct2(A)其功能是:计算矩阵 A 的二维离散余弦反变换值,返回图像 B 的大小与 A 相同。B=idct2(A,m,n)B=idct2(A,m n)其

30、功能是:在对图像 A 进行二维离散余弦反变换之前,先将图像 A 补零到 m*n。如果 m 和 n 比图像 A 小,则进行之前,将 A 剪切,返回图像大小为 m*n。(3) dctmtx 函数该函数用于计算二维离散余弦变换矩阵,其语法格式为:D=dctmtx(n)其功能是:返回 n*n 的 DCT 变换矩阵,如果 A 的大小为 n*n,D*A 是 A 矩阵每一列的 DCT 变换值,D*A 是 A 每一列的 DCT 反变换值。如果 A 为 n*n 的方阵,则A 的 DCT 变换可以用 D*A*D计算。特别是对于 A 很大情况,比利用 dct2 计算二维离散 DCT 变换要快。1.4.2 离散余弦变

31、换的 MATLAB 实现程序如下:a=imread(D:che.jpg); 装入图像figure,subplot(2,2,1)imshow(a); 显示图像title(原图像)A=rgb2gray(a); 将图像转化为灰度图像subplot(2,2,2)imshow(A); 显示图像title(灰度图)武汉理工大学matlab课程设计说明书12B=dct2(A); 进行余弦变换subplot(2,2,3)imshow(log(abs(B),),colormap(jet(64),colorbar; 显示图像title(余弦变换)B(abs(B)10)=0; 将 DCT 变换值小于 10 的元素设

32、为 0C=idct2(B)/255; 进行余弦反变换subplot(2,2,4)imshow(C);title(反余弦变换)运行结果如图所示。图 4 离散余弦变换图1.5 离散沃尔什和哈达玛变换上面介绍的傅立叶变换、DCT 变换都是由正弦或余弦等三角函数为基本的正交函数基,在快速算法中要用到复数乘法、三角函数乘法,占用时间仍然较多。在某些应用领域,需要有更为有效和使得的变换方法:沃尔什(Walsh)变换就算是其中一种。它包括只有+1 和-1 两个数值所构成的完备正交基,由于沃尔什函数基就是二值正交基,武汉理工大学matlab课程设计说明书13与数字逻辑的二个状态相对应,因而更加适用于计算机处理

33、。另外,与傅立叶变换相比,沃尔什变换减少了存储空间和提高了处理速度,这一点对图像处理来说是至关重要的:特别是在大量数据需要进行实时处理时,沃尔什变换更加显示出其优越性。哈达玛(Hadamard)变换本质上是一种特殊排序的沃尔什变换,哈达玛变换矩阵也是一个方阵,只包括+1 和-1 两个矩阵元素,各行或各列之间彼此是正交的,即任意二行相乘或二列相乘后的各数之和必定为零。哈达玛变换核矩阵具有简单的递推关系,即高阶矩阵可以用两个低阶矩阵求得,这个特点使人们更愿意采用哈达玛变换。1.5.1MATLAB 提供的哈达玛变换函数Hadamard 是 MATLAB 提供的哈达玛变换矩阵函数,其语法格式为:H=h

34、adamard(N)其功能是:产生一个 n 阶 hadamard 矩阵,其中元素为 +1 或-1,各正交,该矩阵H 具有如下特性:H*H=n*I 其中n n=size(H),I=eye(n,n)该矩阵只有当 n,n/12,n/20 为2 的幂时才存在。1.5.2 沃尔什哈达玛变换的 MATLAB 实现程序如下:cameraman=imread(cameraman.tif);subplot(1,2,1)imshow(cameraman);title(原图像);H=hadamard(256); hadamard 矩阵cameraman=double(cameraman)/255; 数据类型hcam

35、eraman=H*cameraman*H; hadamard 变换hcameraman=hcameraman/256;subplot(1,2,2)imshow(hcameraman);title(二维离散 Hadamard 变换图);武汉理工大学matlab课程设计说明书14运行结果如图 5 所示。图 5 Walsh-Hadamard 变换图2 图像压缩近年来,随着计算机通信技术的迅速发展,特别是多媒体网络技术的兴起,图像压缩编码已受到了人们越来越多的关注。图像压缩与编码从本质上来说就是要对处理的图像按一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息。压缩通过

36、编码来实现,或者说编码带来压缩的效果。因此,一般把此项处理称为压缩编码。下面分别采用小波变换和离散余弦变换对图像进行压缩。2.1 基于小波变换的图像压缩下面利用二维小波分析对图像进行压缩。一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(即高频)子图像上大部分点的数值都接近于 0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分保留低频部分。程序如下:X=imread(cameraman.tif); 调入图像X=double(X)/255; 归一化图像武汉

37、理工大学matlab课程设计说明书15subplot(2,2,1),imagesc(X),colormap(gray); 显示原始图像title(原图像)disp(压缩前图像 X 的大小);whos(X);C,S=wavedec2(X,2,bior3.7); 对图像用 bior3.7 小波层小波分解ca1=appcoef2(C,S,bior3.7,1); 保留小波分解第层低频信息,进行图像压缩ca1=wcodemat(ca1,440,mat,0); 对第层信息进行量化编码subplot(2,2,2),imagesc(ca1),colormap(gray);显示第一层( 50%分辨率)的图像ti

38、tle(第层小波分解后图像)disp(第一次压缩后图像 X 的大小);whos(X);ca2=appcoef2(C,S,bior3.7,2); 保留小波分解第层低频信息,进行图像的压缩ca2=wcodemat(ca2,440,mat,0); 对第层信息进行量化编码subplot(2,2,3),imagesc(ca2),colormap(gray); 显示第一层( 25%分辨率)的图像title(第层小波分解后图像)disp(第二次压缩后图像 X 的大小);whos(X);运行结果如图所示。图 6 基于小波变换的图像压缩武汉理工大学matlab课程设计说明书16压缩前图像X的大小Name Siz

39、e Bytes ClassX 256*256 524288 double第一次压缩后图像X的大小Name Size Bytes ClassCa1 135*135 145800 double第二次压缩后图像X的大小Name Size Bytes Classca2 75*75 45000 double由以上结果可知,第一次压缩后的图像的分辨率下降到 50%,第二次压缩后分辨率下降到只有 25%。说明小波压缩效率比较高。2.2 基于离散余弦变换的图像压缩离散余弦变换在图像压缩中具有广泛的应用,下面仅介绍一个用 DCT 压缩的例子。在 JPEG 图像压缩算法中,首先将输入图像分解为 8*8 或 16*

40、16 的图像块,然后对每个图像块进行二维 DCT 变换,最后将变换得到的量化的 DCT 进行编码和传送,形成压缩后的图像格式。在接收端,将量化的 DCT 系数进行编码,并对每个 8*8 块或16*16 块进行二维 DCT 反变换,最后交操作完成后的块组合成一个单个的图像。至此,完成图像的压缩和解压的过程。对于一幅典型的图像而言,大多数的 DCT 系数的值非常接近于 0,如果舍弃这些接近于 0 的 DCT 系数值,在重构图像时并不会因此而带来画面质量的显著下降。故利用 DCT 进行图像压缩可以节约大量的存储空间。下面展示的是把输入图像划分成 8*8 的图像块,计算它们的 DCT 系数,并且只保留

41、 64 个 DCT 系数中的 10 个,然后对每个图像块利用这 10 个系数 DCT 反变换来重构图像。程序如下:I=imread(moon.tif);I=im2double(I);图像存储类型转换T=dctmtx(8); 离散余弦变换矩阵武汉理工大学matlab课程设计说明书17B=blkproc(I,8 8,P1*x*P2,T,T);对原图像 DCT 变换mask=1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0

42、 0 0 0;B2=blkproc(B,8 8,P1.*x,mask); %数据压缩,丢弃右下角调频数据I2=blkproc(B2,8 8,P1*x*P2,T,T); 进行 DCT 反变换,得到压缩后的图像figure;subplot(1,2,1)imshow(I)title(原始图像)disp(压缩前图像 I 的大小 );whos(I);subplot(1,2,2)imshow(I2)title(压缩后的图像)disp(压缩后图像的 I2 的大小 );whos(I2);运行结果如图 7 所示。武汉理工大学matlab课程设计说明书18图 7 离散余弦压缩图像原图像I的大小Name Size

43、Bytes ClassI 537*358 1537968 double压缩后图像I2的大小Name Size Bytes ClassI2 537*358 1537968 double由运行结果可以看出,压缩后的图像大小与压缩前一样大,似乎是压缩“不成功” 。但事实不是这样的。虽然在程序中,只保留了 64 个系数中的 10 个系数,那其余的 0经反变换后也用相同的字节数来储存了,因此根本没有变化。要想用这种方法实现压缩,JPEG 压缩除了 DCT 变换,还需要编码,而且编码才是真正的核心。武汉理工大学matlab课程设计说明书193 总结通过这次 MATLAB 课程设计,在去年的基础强化训练对

44、MATLAB 的了解的基础上,更进一步地认识到了 MATLAB 功能的强大性及与我们通信专业的紧密联系,它使得我们在使用的时候用户直接调用这些库函数并赋予实际参数就能解决实际问题,具有极高的变成效率。我也熟悉了 MATLAB 的工作环境,可以很熟练的对 MATLAB 进行常规的操作,快速进行程序编辑和仿真。刚开始拿到题目时,感觉很难,不知道如何着手。后来通过查阅了大量相关资料和书籍后发现,原来它也不是想象中的那么难。刚开始通过看图像处理的相关例子,理解处理的原理和步骤,然后尝试着自己处理,虽然会遇到各种问题,但经过自己努力,后来结果还是很理想的。在这次的课程设计中,主要是通过实践的方式比较了图

45、像变换常用的几种变换:傅立叶变换可以将空间域的图像转变到空间频域上进行研究;小波变换将信号分解为不同尺度上的分量,突破了傅里叶变换的局限,在大尺度上的信号分量具有较好的时域分辨率,在小尺度上的信号分量具有较好的频域分辨率;为了克服小波分解在高频段的频率分辨率较差,而在低频段的时间分辨率较差的缺点,人们在小波分解的基础上提出了小波包分解;离散余弦变换的变换核为余弦函数,计算速度较快,有利于图像压缩和其他处理;沃尔什哈达玛函数基就是二值正交基,与数字逻辑的二个状态相对应,因而更加适用于计算机处理等。 每一次课设都会给我一种新的体验与感受,这次课程设计一样,平时都是啃课本,很单调很乏味,但是,强化训

46、练给了我们动手和自主学习的机会,当然,在这过程中不免会遇到困难,当时也会很困惑、沮丧,但问题总要解决的,所以自己还是会去想办法,我想这也是一种收获。还有,经过了课程设计,我也深刻体会到 MATLAB 功能的强大以及学好 MATLAB 的重要性,在今后的学习生活中,我会继续学习使用它。武汉理工大学matlab课程设计说明书20参考文献1 王洪元主编 .MATLAB 语言以及在电子信息工程中的应用 .清华出版社. 2004.122 刘文耀编著 .数字图像采集与处理.电子工业出版社.2007.08.013 徐建华编著 .图像处理与分析.科学出版社.1994.054 赵树杰编著 .数字图像处理.西安电子科技大学出版社.2000.035 孙兆林编著 .MATLAB 6.X 图像处理.清华大学出版社.2002.26周金萍编著.MATLAB 6 实践与提高.中国电力出版社 .2002.1武汉理工大学matlab课程设计说明书21附件 6:本科生课程设计成绩评定表姓 名 性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报