资源描述:
《多媒体技术基础实验4.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、图像压缩编码程序设计一、实验目的和要求本实验为设计性实验,其F1的是理解有损压缩的概念,特别是通过K・L变换或DCT变换,掌握压缩编码的基木原理、算法,并通过编程给予实现,对原始图像数据和解压后的图像数据进行失真估计,了解床缩性能及其重建效果的影响、作用,给出适当的理论分析。二、实验内容和原理本实验是在根据图像压缩基本原理的基础上,独立设计图像的有损压缩编码算法,并在MATLAB编程环境屮编程实现。其要求是:1)选择一种有损斥缩编码算法(K・L变换或DCT变换)对一幅数字图像进行压缩编码,计算出压缩率,并显示编码前图像。2)对编码
2、后的数据进行解压,并显示解压后图像。3)改变算法参数对原始图像数据和解床后的图像数据进行失真估计。4)通过改变算法参数(比如改变图像编码的子图像小块的尺度等)进行算法比较和讨论。三、实验环境硬件:计算机软件:Windows2000和MATLAB编程环境。四、算法描述及实验步骤(1)首先用imread读入原图像:I=imread('lena256rgb.png');(2)使用由函数dctmtx返冋的DCT变换矩阵,dctmtx的调用格式为:D=dctmtx(N),继而利用blkproc函数完成分块操作。blkproc函数的调用格式为
3、:B=blkproc(A,[mn],fun,P1,P2,.・.)。代码:T=dctmtx(8);%产生二维DCT变换矩阵L=blkproc(R1,[88];P1*x*P2;T,T);%计算二维DCT,矩阵T及其转置T'是DCT函数Pl*x*P2的参数Mask=[III00000110000001000000000000000000000000000000000000000000000001;%二值掩膜,用来床缩DCT系数,只留下DCT系数中左上角的10个L2=blkproc(L,[88];Pl.*xMask);%只保留DCT变换
4、的10个系数(1)对原图像进行压缩,代码:[mn]=size(L2);J=[mn];fori=l:mvalue=L2(i,l);num=l;forj=2:nifL2(i,j)==valuenum=num+l;elseJ=[Jnumvalue];num=l;value=L2(i,j);endendJ=[Jnumvalue];end(1)对其进行解压缩,代码:tl=J(l);t2=J(2);K(l:tl,l:t2)=0;il=l;jl=l;fori=3:2:length(J)cl=J(i);c2=J(i+l);forj=l:clK(i
5、ljl)=c2;jl=jl+l;讦jl>t2il=il+l;jl=l;endendendR2=blkproc(K,[8,8];Pl*x*P2;TT);%逆DCT,重构图像G=I(:,:,2);G1=im2double(G);%将原图像转为双精度数据类型;(2)显示其图像,代码如下:A(:,:,1)=R2;A(:,:,2)=G2;A(:,:,3)=B2;Subplot(1,2,1);imshow⑴;titled原图像J;%显示原图像Subplot(l,2,2);imshow(A);titleCl^缩图像);%显示压缩后的图像,对比
6、原始图像和压缩后的图像五、调试过程此次实验经过运行、调试、修改之后,运行无错误,显示成功。六、实验结果1、矩阵为沪8所得的结果:(I)原图像和压缩图像:(2)R2的原图像人小、用缩图像人小以及图像的床缩比:原图像大小NameSizeBytesClassL2256x256524288doublearrayGrandtotalis65536elementsusing524288bytes圧缩图像大小:NameSizeBytesClassJ1x18750150000doublearrayGrandtotalis18750elements
7、using150000bytes图像的圧缩比:3.4953(3)G2的原图像人小、床缩图像大小以及图像的丿力缩比:NameSizeBytesClassL2256x256524288doublearrayGrandtotalis65536elementsusing524288bytes压缩图像大小:NameSizeBytesClassJ1x18750150000doublearrayGrandtotalis18750elementsusing150000bytes图橡的压缩比:3.4953(2)B2的原图像大小、圧缩图像大小以及图像
8、的压缩比:原图橡大小NameSizeBytesClassL2256x256524288doublearrayGrandtotalis65536elementsusing524288bytes压缩图像大小:NameSizeBytesClassJ1x1