图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc

图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc

ID:55107574

大小:286.50 KB

页数:12页

时间:2020-04-27

图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc_第1页
图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc_第2页
图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc_第3页
图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc_第4页
图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc_第5页
资源描述:

《图像霍夫曼编码与解码以及熵-平均码长-冗余度的计算.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、DIP上机报告题目:数字图像处理上机报告(第4次)学校:中国地质大学(武汉)指导老师:傅华明姓名:龙勋班级序号:-06目录1图像霍夫曼编码与解码以及熵,平均码长,冗余度的计算32上机小结10注:给定的文件夹中只需运行test脚本就可以得到结果,从workspace中看到相应的数据4.2图像的霍夫曼编码与解码题目要求:对图2实施哈夫曼编码和解码,计算图象熵,平均码长和冗余度;算法设计:1.遍历图像,统计各个像素灰度值的概率2.找出概率最小的两个,在最小概率所代表的灰度值编码中加1,在另一个较小的概率所代表的灰度值编码中加03.合并两个概率,成为一个新的元素,如

2、此重复下去,直到最后剩两个元素4.进行编码的逆过程,即解码过程5.计算相应的数据程序代码:运行代码:clearin=[2,2,3,5,0,0,5,5,5,4,1,1,2,2,1,5,4,6,5,5,7,2,2,3,5,2,2,2,3,4,4,4,6,2,1,4,1,1,2,2,1,5,7,6,5,5,7,2,2,4,4,1,2,2,1,5,2,3,1,2,2,1,5,0];[p,out]=gailv(in);[code]=Huffman(0:7,p);%进行霍夫曼编码[Coded_Img]=Encode(in,code);%对图像进行编码[H,L,R]=Ge

3、tInfo(code);%计算熵、平均码长、冗余度[Img]=Decode(Coded_Img,code);%对图像进行解码图像各像素灰度的概率计算:function[p,out]=gailv(in)[M,N]=size(in);out=zeros(4,8);p=zeros(1,8);fori=1:8out(1,i)=i-1;endfori=1:Mforj=1:Nfork=1:8ifin(i,j)==out(1,k)out(2,k)=out(2,k)+1;endendendendfori=1:8out(3,i)=out(2,i)/(M*N);p(1,i)=o

4、ut(2,i)/(M*N);endend霍夫曼编码过程:function[code_out]=Huffman(s,p)[Ms,Ns]=size(s);if(Ms==1)sig=s';elsesig=s;end%s为各元素名称p为各元素概率[Ms,Ns]=size(sig);[Mp,Np]=size(p);if(Ms~=Np)return;endcode=cell(Ms,4);%建立编码cellcode_out=cell(Ms,3);%建立输出cellcoding=cell(Ms,2);%建立编码过程中用到的cellfori=1:Mscode{i,1}=sig

5、(i,:);%第一列为元素名称code{i,2}=[];%第二列为编码code{i,3}=p(i);%第三列为元素概率code{i,4}=[];%第四列为元素概率排行coding{i,1}=p(i);%第一行为元素概率coding{i,2}=i;%第二行表示此概率由哪些元素组成end[m,l]=Cell_min(coding(:,1));%找出最小值while(m<1)%若最小值小于1(编码尚未完成)[m1,l1]=Cell_min(coding(:,1));%找出最小值temp_p=coding{l1,1};%记录下最小概率coding{l1,1}=2;%

6、将概率改为2,则以后不会再次取到[m2,l2]=Cell_min(coding(:,1));%找出次小值coding{l2,1}=coding{l2,1}+temp_p;%最小概率和次小概率相加得到新元素概率[k,mp]=size(coding{l1,2});%考虑最小概率包含了哪些元素fori=1:mpcode{coding{l1,2}(i),2}=[1,code{coding{l1,2}(i),2}];%在这些元素的编码前加1end[k,mp]=size(coding{l2,2});%考虑次小概率包含了哪些元素fori=1:mpcode{coding{l

7、2,2}(i),2}=[0,code{coding{l2,2}(i),2}];%在这些元素的编码前加0endcoding{l2,2}=[coding{l2,2},coding{l1,2}];%新元素包含了次小和最小元素包含的所有元素[m,l]=Cell_min(coding(:,1));%找出当前最小值,继续循环endfori=1:Mscode_out(i,1:3)=code(i,1:3);%输出cell前3列等于编码cell前3列end求概率的最小值函数:function[mind,loc]=Cell_min(data)%找出cell中的某列元素的最小值和

8、位置[M,N]=size(data);loc=-1;

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

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

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