预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

福建农林大学金山学院实验报告系:信息与机电工程系专业:计算机科学与技术年级:2009级姓名:黄伟河学号:092231048实验室号___607_计算机号S048实验时间:2012-5-10指导教师签字:成绩:报告退发(订正、重做)实验名称:图像压缩编码程序设计一、实验目的和要求本实验为设计性实验,其目的是理解有损压缩的概念,特别是通过K-L变换或DCT变换,掌握压缩编码的基本原理、算法,并通过编程给予实现,对原始图像数据和解压后的图像数据进行失真估计,了解压缩性能及其重建效果的影响、作用,给出适当的理论分析。二、实验内容和原理本实验是在根据图像压缩基本原理的基础上,独立设计图像的有损压缩编码算法,并在MATLAB编程环境中编程实现。其要求是:1)选择一种有损压缩编码算法(K-L变换或DCT变换)对一幅数字图像进行压缩编码,计算出压缩率,并显示编码前图像。2)对编码后的数据进行解压,并显示解压后图像。3)改变算法参数对原始图像数据和解压后的图像数据进行失真估计。4),通过改变算法参数(比如改变图像编码的子图像小块的尺度等)进行算法比较和讨论。三、实验环境硬件:计算机软件:Windows2000和MATLAB编程环境。四、算法描述及实验步骤1、读入图像:clearI=imread('1.jpg');%读入原图像;R=I(:,:,1);R1=im2double(R);%将原图像转为双精度数据类型;2、进行DCT矩阵变换(重复三次),并显示原图像大小、压缩图像大小、压缩比:T=dctmtx(8);%产生二维DCT变换矩阵L=blkproc(R1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数Mask=[1010000011001000110000000000000000000000000000000000000000000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个L2=blkproc(L,[88],'P1.*x',Mask);%只保留DCT变换的10个系数[mn]=size(L2);J=[mn];fori=1:mvalue=L2(i,1);num=1;forj=2:nifL2(i,j)==valuenum=num+1;elseJ=[Jnumvalue];num=1;value=L2(i,j);endendJ=[Jnumvalue];enddisp('原图像大小')whos('L2');disp('压缩图像大小:')whos('J');disp('图像的压缩比:')disp(m*n/length(J))%解压缩t1=J(1);t2=J(2);K(1:t1,1:t2)=0;i1=1;j1=1;fori=3:2:length(J)c1=J(i);c2=J(i+1);forj=1:c1K(i1,j1)=c2;j1=j1+1;ifj1>t2i1=i1+1;j1=1;endendendR2=blkproc(K,[8,8],'P1*x*P2',T',T);%逆DCT,重构图像G=I(:,:,2);G1=im2double(G);%将原图像转为双精度数据类型;T=dctmtx(8);%产生二维DCT变换矩阵L=blkproc(G1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数Mask=[1010000011001000110000000000000000000000000000000000000000000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个L2=blkproc(L,[88],'P1.*x',Mask);%只保留DCT变换的10个系数[mn]=size(L2);J=[mn];fori=1:mvalue=L2(i,1);num=1;forj=2:nifL2(i,j)==valuenum=num+1;elseJ=[Jnumvalue];num=1;value=L2(i,j);endendJ=[Jnumvalue];enddisp('原图像大小')whos('L2');disp('压缩图像大小:')whos('J');disp('图像的压缩比:')disp(m*n/length(J))%解压缩t1=J(1);t2=J(2);K(1:t1,1:t2)=0;i1=1;j1=1;fori=3:2:length(J)c1=J