实验四 DCT变换HUFFman编码图像压缩.docx 立即下载
2024-11-09
约7.4千字
约8页
0
666KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

实验四 DCT变换HUFFman编码图像压缩.docx

实验四DCT变换HUFFman编码图像压缩.docx

预览

免费试读已结束,剩余 3 页请下载文档后查看

20 金币

下载文档

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

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

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

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

实验四图像压缩
姓名:学号:	邮箱:
实验目的
掌握DCT变换的原理
了解DCT变化在图像压缩中的应用
掌握图像压缩的基本原理及方法
了解霍夫曼编码原理
熟悉图像压缩的MATLAB编程
实验原理
DCT是目前比较好的图像变换,它有很多优点。DCT是正交变换,它可以将8x8图像空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,如采用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像。
由于DCT主要应用在数据和图像的压缩,因此希望原信号的能量在变换后能尽量集中在少数系数上,且这些大能量的系数能处在相对集中的位置,这将有利于进一步的量化和编码。但是如果对整段的数据或整幅图像来做DCT,那就很难保证大能量的系数能处在相对集中的位置。因此,在实际应用中,一般都是将数据分成一段一段来做,一般分成8x8或16x16的方块来做。
二维DCT正交变换的公式为:

二维DCT逆变换公式:

其中

实验要求
利用DCT变换对图像进行压缩,对比不同压缩比下的结果,对比不同压缩比下图像大小的变化。压缩过程如下图所示:
读入图像
DCT变换
量化
huffman编码












实验过程与结果
实验程序如下:(先给出主程序,然后给出各功能子函数的程序)
主程序:

clear
load('lena.mat')%调入170*170大小的一幅彩色lena图像
l=imresize(lena,[256256]);%将图像变换为8的整数倍大小
X=rgb2gray(l);
Y1=double(X);%读入图像数据

lianghua=[1611101624405161;%量化矩阵,量化的程度序决定压缩比
1212141926586055;
1413162440576956;
1417222951878062;
182237566810910377;
243555648110411392;
49647887103121120101;
7292959811210010399];
ilianghua=lianghua;
%----------------------------------------------------------
%图像压缩
%----------------------------------------------------------
t=dctmtx(8);
J=blkproc(Y1,[88],'P1*x*P2',t,t');%分成8*8块进行DCT变换
M=blkproc(J,[88],'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;
fori=1:256
forj=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,[88],'x.*P1',ilianghua);%反量化
I=blkproc(T,[88],'P1*x*P2',t',t);%8*8DCT反变换
%----------------------------------------------------------
%调用Huffman编码程序进行解码
%显示原始图像和经编码后的图像,显示压缩比,并计算均方根误差得erms=0,表示是Huffman是无失真编码
figure
subplot(221);imshow(Y1,[]);axissquare;xlabel('原256*256灰度图像');
subplot(222);imshow(I,[]);axissquare;xlabel('Huffman解压缩后图像');
subplot(223);imshow((Y1-I),[]);axissquare;xlabel('量化后损失
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

实验四 DCT变换HUFFman编码图像压缩

文档大小:666KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用