实验四 dct变换huffman编码图像压缩

实验四 dct变换huffman编码图像压缩

ID:10978900

大小:725.35 KB

页数:8页

时间:2018-07-09

实验四 dct变换huffman编码图像压缩_第1页
实验四 dct变换huffman编码图像压缩_第2页
实验四 dct变换huffman编码图像压缩_第3页
实验四 dct变换huffman编码图像压缩_第4页
实验四 dct变换huffman编码图像压缩_第5页
资源描述:

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

1、实验四图像压缩姓名:学号:邮箱:一、实验目的1.掌握DCT变换的原理2.了解DCT变化在图像压缩中的应用3.掌握图像压缩的基本原理及方法4.了解霍夫曼编码原理5.熟悉图像压缩的MATLAB编程二、实验原理DCT是目前比较好的图像变换,它有很多优点。DCT是正交变换,它可以将8x8图像空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,如采用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都容易实现;而且DCT算法是对称的,所以

2、利用逆DCT算法可以用来解压缩图像。由于DCT主要应用在数据和图像的压缩,因此希望原信号的能量在变换后能尽量集中在少数系数上,且这些大能量的系数能处在相对集中的位置,这将有利于进一步的量化和编码。但是如果对整段的数据或整幅图像来做DCT,那就很难保证大能量的系数能处在相对集中的位置。因此,在实际应用中,一般都是将数据分成一段一段来做,一般分成8x8或16x16的方块来做。二维DCT正交变换的公式为:二维DCT逆变换公式:其中一、实验要求利用DCT变换对图像进行压缩,对比不同压缩比下的结果,对比不同压缩比下图像大小的变化。

3、压缩过程如下图所示:读入图像DCT变换量化huffman编码二、实验过程与结果实验程序如下:(先给出主程序,然后给出各功能子函数的程序)主程序:clearload('lena.mat')%调入170*170大小的一幅彩色lena图像l=imresize(lena,[256256]);%将图像变换为8的整数倍大小X=rgb2gray(l);Y1=double(X);%读入图像数据lianghua=[1611101624405161;%量化矩阵,量化的程度序决定压缩比1212141926586055;141316244057

4、6956;1417222951878062;182237566810910377;243555648110411392;49647887103121120101;7292959811210010399];ilianghua=lianghua;%----------------------------------------------------------%图像压缩%----------------------------------------------------------t=dctmtx(8);J=blkpr

5、oc(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);%调用Huff

6、man解码程序进行解压缩k=1;fori=1:256forj=1:256unzippedray(i,j)=unzipped(k);k=k+1;endendunzippedray=unzippedray';%对解压缩后得到的一维数组进行变换,得到无损的量化后%二维数组,其值与data数组值是一致的,体现了Huffman编码是一种无损编码unzippedray=(double(unzippedray)-1+M2).*u;T=blkproc(unzippedray,[88],'x.*P1',ilianghua);%反量化I=b

7、lkproc(T,[88],'P1*x*P2',t',t);%8*8DCT反变换%----------------------------------------------------------%调用Huffman编码程序进行解码%显示原始图像和经编码后的图像,显示压缩比,并计算均方根误差得erms=0,表示是Huffman是无失真编码figuresubplot(221);imshow(Y1,[]);axissquare;xlabel('原256*256灰度图像');subplot(222);imshow(I,[])

8、;axissquare;xlabel('Huffman解压缩后图像');subplot(223);imshow((Y1-I),[]);axissquare;xlabel('量化后损失的图像部分');[h,k]=hist((Y1-I),256);%生成直方图数据subplot(224);bar(k,h,'k');tit

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

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

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