- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 DCT变换HUFFman编码图像压缩
实验四 图像压缩
姓名: 学号: 邮箱:
实验目的
掌握DCT变换的原理
了解DCT变化在图像压缩中的应用
掌握图像压缩的基本原理及方法
了解霍夫曼编码原理
熟悉图像压缩的MATLAB编程
实验原理
DCT是目前的图像变换,它有很多优点。DCT是正交变换,它可以将88图像空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,如采用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像。
二维DCT逆变换公式:
其中
实验要求
利用DCT变换对图像进行压缩,对比不同压缩比下的结果,对比不同压缩比下图像大小的变化。压缩过程如下图所示:
实验过程与结果
实验程序如下:(先给出主程序,然后给出各功能子函数的程序)
主程序:
clear
load(lena.mat)%调入170*170大小的一幅彩色lena图像
l=imresize(lena,[256 256]);%将图像变换为8的整数倍大小
X=rgb2gray(l);
Y1=double(X);%读入图像数据
lianghua=[16 11 10 16 24 40 51 61;%量化矩阵,量化的程度序决定压缩比
12 12 14 19 26 58 60 55;
14 13 16 24 40 57 69 56;
14 17 22 29 51 87 80 62;
18 22 37 56 68 109 103 77;
24 35 55 64 81 104 113 92;
49 64 78 87 103 121 120 101;
72 92 95 98 112 100 103 99];
ilianghua=lianghua;
%----------------------------------------------------------
%图像压缩
%----------------------------------------------------------
t=dctmtx(8);
J=blkproc(Y1,[8 8],P1*x*P2,t,t); %分成8*8块进行DCT变换
M=blkproc(J,[8 8],round(x./P1),lianghua); %量化
u=abs(min(min(M1));
M=(M1./u)+1;
data=uint8(M);%Huffman编码要求为无符号整形数组
M2=M-double(data);
[zipped,info]=huffencode(data); %调用Huffman编码程序进行压缩
unzipped=huffdecode(zipped,info,data); %调用Huffman解码程序进行解压缩
k=1;
for i=1:256
for j=1:256
unzippedray(i,j)=unzipped(k);
k=k+1;
end
end
unzippedray= unzippedray;%对解压缩后得到的一维数组进行变换,得到无损的量化后
%二维数组,其值与data数组值是一致的,体现了Huffman编码是一种无损编码
unzippedray=(double(unzippedray)-1+M2).*u;
T=blkproc(unzippedray,[8 8],x.*P1,ilianghua); %反量化
I=blkproc(T,[8 8],P1*x*P2,t,t); %8*8DCT反变换
%----------------------------------------------------------
%调用Huffman编码程序进行解码
%显示原始图像和经编码后的图像,显示压缩比,并计算均方根误差得erms=0,表示是Huffman是无失真编码
figure
subplot(221);imshow(Y1,[]);axis square;xlabel(原256*256灰度图像);
subplot(222);imshow(I,[]);axis square;xlabel(Huffman解压缩后图像);
subplot(223);imshow((Y1-I),[]);axis square;xlabel(量化后损失的图像部分);
[h,k]=hist((Y1-I),256);%生成直方图数据
subplot(224);bar(k,h,k);title(误差图像直方图);
%subplot(224);imshow(I,[]);axis
您可能关注的文档
- 安全生产部门负责人岗位职责.doc
- 安全用电与家庭电路调查.doc
- 安全管理先进个人申报材料.doc
- 安全管理检查评分表表.doc
- 安全经费预算.doc
- 安全设施“三同时”办事流程.doc
- 安全芯片通讯芯片设计行业300077 国民技术.doc
- 安全经验分享新编.ppt
- 安全防护红外栅栏周界系统方案.doc
- 安全防范小手册.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)