实验三 基于DCT的数字图像压缩及Matlab实现_第1页
实验三 基于DCT的数字图像压缩及Matlab实现_第2页
实验三 基于DCT的数字图像压缩及Matlab实现_第3页
实验三 基于DCT的数字图像压缩及Matlab实现_第4页
实验三 基于DCT的数字图像压缩及Matlab实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 基于DCT的数字图像压缩及Matlab实现实验报告1 实验目的1. 了解DCT以及基于DCT的图片压缩的方法和步骤;2. 学会图片压缩的方法2 实验仪器PC机(安装Windows98、Windows2000或者Windows XP或以上),Matlab软件。3 实验原理(1) DCT的定义DCT变换利用傅立叶变换的性质,采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。(2) DCT和图像压缩DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处

2、理的方法。在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。图像经DCT变换以后,DCT系数之间的相关性已经很小,而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。为此,发送者首先将输入图像分解为8×8或16×16的块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码

3、和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换,最后将操作完成后所有的块拼接起来构成一幅单一的图像。对于一般的图像而言,大多数DCT系数值都接近于0,可以去掉这些系数而不会对重建图像的质量产生重大影响。因此,利用DCT进行图像压缩确实可以节约大量的存储空间。DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。而图像的能量通常集中在低频部分。4 实验内容离散余弦变换的Matlab实现利用余弦变换进行图像压缩,首先要将输入图像分解成8×8或16×16的块,然后对每个块进行二维离散余弦

4、变换,最后将变换得到的量化DCT系数进行编码和传送,形成压缩后的图像格式。解码时对每个块进行二维DCT反变换,最后在将反变换后的块组合成一副图像。对于通常的图像来说,大多数的DCT系数的值非常接近于0。如果舍弃这些接近于0的值,在重构图像时并不会带来图像画面质量的显著下降。所以,利用DCT进行图像压缩可以节约大量的存储空间。压缩应该在最合理的近似原图像的情况下使用最少的系数,使用系数的多少也决定了压缩比的大小。按照以上的方法,使用MATLAB,将一幅图像分成8×8的块使用二维离散余弦变换进行压缩(压缩比为16:1,8:1),给出实验仿真结果,要求显示压缩前后的图像,并且计算压缩前后图

5、像的均方误差MSE。改变压缩比为8:1,再如前所做,比较不同之处。5 实验代码(1)压缩比为8:1clear;I=imread('autumn.tif');Igray=rgb2gray(I);Idouble=im2double(Igray)%将图像转换为双精度格式T=dctmtx(8);%返回一个8×8的DCT变换矩阵Id=blkproc(Idouble,8,8,'P1*x*P2',T,T');%进行DCT变换M=1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

6、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;% 保留6个DCT系数重构图像Icpress=blkproc(Id,8,8,'P1.*x',M);%压缩数据,只保留左上角低频数据Iodct=blkproc(Icpress,8,8,'P1*x*P2',T',T);%DCT反变换,得到压缩后的图像cha=abs(Idouble-Iodct);junfang=mse(cha); figure(1);subplot(211)imshow(I)title('原始图像',

7、9;Fontsize',26);subplot(212)imshow(Iodct)title('压缩图像(保留6个DCT系数)','Fontsize',26);xlabel('均方误差:'junfang,'Fontsize',20)whos;%显示所有图像的属性(2) 压缩比为16:1clear;I2=imread('autumn.tif');Igray2=rgb2gray(I2);Idouble2=im2double(Igray2)%将图像转换为双精度格式T2=dctmtx(16);%返回一个16

8、5;16的DCT变换矩阵Id2=blkproc(Idouble2,16,16,'P1*x*P2',T2,T2');%进行DCT变换M2=1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

9、0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%保留6个DCT

10、系数重构图像Icpress2=blkproc(Id2,16,16,'P1.*x',M2);%压缩数据,只保留左上角低频数据Iodct2=blkproc(Icpress2,16,16,'P1*x*P2',T2',T2);%DCT反变换,得到压缩后的图像cha2=abs(Idouble2-Iodct2);junfang2=mse(cha2); figure(1);subplot(211)imshow(I2)title('原始图像','Fontsize',26);subplot(212)imshow(Iodct2)title(&

11、#39;压缩图像(保留6个DCT系数)','Fontsize',26);xlabel('均方误差:'junfang2,'Fontsize',20)whos;%显示所有图像的属性6 实验图像(1)压缩比为8:1第一幅图为保留6个DCT系数的图像,其中两张为DCT变换后进行处理的图像。后省略。(2)压缩比为16:17 实验图像、数据分析由压缩比为8:1的图片可以看出,随着保留的DCT系数的增加,压缩后的图像变得越来越清晰,均方误差越来越小。原图大小为208KB,压缩比为8:1图片中保留6个、10个、32个、58个DCT系数的压缩图像大小为59.4KB、62.1KB、67.7KB、68.1KB。由此可见,随着DCT系数的增加,保留原图的低频成分越多,压缩后的图像越大。由压缩比为16:1的图片可以看出,与压缩比8:1的效果一致,随着保留的DCT系数的增加,压缩后的图像变得越来越清晰,均

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论