您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 哈夫曼编码-图像熵-平均码长-冗余度
注意:本程序根据二叉树结构原理编写,与一般不同,此程序并没有调用哈夫曼的matlab库函数,可做实习验收。关键字:图像熵,平均码长,冗余度。程序使用方法:1.导入图像矩阵A2.运行findx(A)3.运行hfmbm(ans),生成结果:图像熵,平均码长,冗余度function[y]=findx(A)%FINDXSummaryofthisfunctiongoeshere%Detailedexplanationgoesherea=min(min(A));b=max(max(A));[M,N]=size(A);y=zeros(1,M*N);fork=a:bfori=1:Mforj=1:NifA(i,j)==ky(k+1)=y(k+1)+1;endendendendy=y(a+1:b+1)/M/N;y=sort(y);y=fliplr(y);%copyrightbyxjh2016.1.2Endfunction[codeS]=hfmbm(x)%HFMBMSummaryofthisfunctiongoeshere%Detailedexplanationgoeshere[~,N]=size(x);%x依次大到小排列y=[];%新树x=fliplr(x);fori=1:N-1y1=0;forj=1:i+1y1=y1+x(j);endy=[yy1];endcode=cell(1,N);y=fliplr(y);x=fliplr(x);fori=1:N-2ifx(i)+0.000001=y(i+1)%等号有时会判断错误,故加一点小值code{i}=[code{i}0]forj=i+1:Ncode{j}=[code{j}1]endelsecode{i}=[code{i}1];forj=i+1:Ncode{j}=[code{j}0];endendendcode{N}=[code{N}1];code{N-1}=[code{N-1}0];%平均码长SM=0;%平均码长S=0;%熵%x=fliplr(x);fori=1:NSM=length(code{i})*x(i)+SM;S=-x(i)*log2(x(i))+S;endSMSr=SM/S-1%冗余度%copyrightbyxjh2016.1.2
本文标题:哈夫曼编码-图像熵-平均码长-冗余度
链接地址:https://www.777doc.com/doc-5402184 .html