实验四图像压缩编码程序设计

实验四图像压缩编码程序设计

ID:36478372

大小:199.00 KB

页数:9页

时间:2019-05-11

实验四图像压缩编码程序设计_第1页
实验四图像压缩编码程序设计_第2页
实验四图像压缩编码程序设计_第3页
实验四图像压缩编码程序设计_第4页
实验四图像压缩编码程序设计_第5页
资源描述:

《实验四图像压缩编码程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验名称:图像压缩编码程序设计一、实验目的和要求本实验为设计性实验,其目的是理解有损压缩的概念,特别是通过K-L变换或DCT变换,掌握压缩编码的基本原理、算法,并通过编程给予实现,对原始图像数据和解压后的图像数据进行失真估计,了解压缩性能及其重建效果的影响、作用,给出适当的理论分析。二、实验内容和原理本实验是在根据图像压缩基本原理的基础上,独立设计图像的有损压缩编码算法,并在MATLAB编程环境中编程实现。其要求是:1)选择一种有损压缩编码算法(K-L变换或DCT变换)对一幅数字图像进行压缩编码,计算出压缩率,并显示编

2、码前图像。2)对编码后的数据进行解压,并显示解压后图像。3)改变算法参数对原始图像数据和解压后的图像数据进行失真估计。4),通过改变算法参数(比如改变图像编码的子图像小块的尺度等)进行算法比较和讨论。三、实验环境硬件:计算机软件:Windows2000和MATLAB编程环境。四、算法描述及实验步骤1、读入图像:clearI=imread('1.jpg');%读入原图像;R=I(:,:,1);R1=im2double(R);%将原图像转为双精度数据类型;2、进行DCT矩阵变换(重复三次),并显示原图像大小、压缩图像大小、

3、压缩比: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

4、=[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=

5、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

6、*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=

7、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;endendendG

8、2=blkproc(K,[8,8],'P1*x*P2',T',T);%逆DCT,重构图像B=I(:,:,3);B1=im2double(B);%将原图像转为双精度数据类型;T=dctmtx(8);%产生二维DCT变换矩阵L=blkproc(B1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T’是DCT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。