- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
桂电图像处理实验5
主程序
global HufData;
global Len;
img=imread(E:\gd.jpg);
subplot(1,2,1);imshow(img);title(彩图);
I=rgb2gray(img);subplot(1,2,2);imshow(I);imhist(I);title(直方图);
GrayStatistics=imhist(I);
%统计
GrayStatistics=GrayStatistics;
GrayRatioo=GrayStatistics/sum(GrayStatistics);
GrayRatioNO=find(GrayRatioo~=0);
Len=length(GrayRatioNO);
GrayRatio=ones(1,Len); %初始化灰度集,防止系统随即赋予其垃圾值
for i=1:Len
GrayRatio(i)=GrayRatioo(i);
end
GrayRatio=abs(sort(-GrayRatio));
for i=1:Len %将图像灰度概率赋予结构体
HufData(i).value=GrayRatio(i);
end
%计算哈夫曼编码
HuffmanCode(Len);
%显示信息
zippedHuffman=1;
for i=1:Len
tmpData=HufData(i).code;
str=;
for j=1:length(tmpData)
str=strcat(str,num2str(tmpData(j)));
zippedHuffman=zippedHuffman+1;
end
disp(strcat(a,num2str(i),= ,str))
end
%计算计算机一共输出多少个哈夫曼编码
zippedHuffman;
%计算在删去0灰度级压缩之前的原始图像直接容量
unzipped_delete=i*8;
%计算压缩比率
ratio_delete=zippedHuffman/unzipped_delete;
%计算图像压缩比率
ad=num2str(ratio_delete*100);
str2=strcat(ad,%);
disp(strcat(哈夫曼编码压缩比率,=,str2));
%排序
function HuffmanCode(OriginSize)
global HufData;
global Len;
global SortList;
for i=1:OriginSize
HufData(i).left=1;%%霍夫曼编码树左边纪录为1
HufData(i).right=0;%%霍夫曼编码树右边纪录为0
HufData(i).code=[];%%输出码初始化为0
SortList(i).symbol=i;%%排序列表初始化
SortList(i).value=HufData(i).value;
end
newsymbol=OriginSize;%初始化原始消息数目
for n=OriginSize:-1:2
SortList=sortdata(SortList,n);%将N个消息进行排序
newsymbol=newsymbol+1;%将最后两个出现概率最小的消息合成一个消息
HufData(newsymbol).value=SortList(n-1).value+SortList(n).value;
HufData(newsymbol).left=SortList(n-1).symbol;
HufData(newsymbol).right=SortList(n).symbol;
SortList(n-1).symbol=newsymbol;%将消息添加到列队的最后,为N-1个消息重新排序作好准备
SortList(n-1).value=HufData(newsymbol).value;
end
visit(newsymbol,Len,[]);%遍历霍夫曼树,获得霍夫曼编码/哈夫曼编码
end
遍历霍夫曼编码
function visit(node,n,ocode)
global HufData
if node=n
%如果没有哈夫曼编码/霍夫曼编码树的子接点直接输出原始码,这里为空码([])
HufData(node).code=ocode;
else
if(HufData(node).left0)
%遍历左分支接点输出1,这里采用子函数嵌套调用
ocode1=[ocode 1];
v
您可能关注的文档
- 物质的聚集状态片段.ppt
- 司机管理实施细则.doc
- IC-ED-04工程变更管理办法B0.doc
- 变压器设计报告.doc
- 电梯伤人谁之过.ppt
- 科技攻关项目技术总.doc
- 高手是如何赢利的.doc
- 法学方法与现代民法读书笔记.doc
- XXX住宅楼竣工验收方案.doc.doc
- sas第3讲数据集管理.ppt
- 苏教版8年级上册数学全册教学课件(2021年10月修订).pptx
- 比师大版数学4年级下册全册教学课件.pptx
- 冀教版5年级上册数学全册教学课件.pptx
- 办公室普通党员2024年组织生活会个人对照检查发言材料供参考.docx
- 领导班子成员2025年组织生活会“四个带头”对照检查材料范文.docx
- 2024年度专题组织生活会个人“四个带头”对照检查材料范文.docx
- 党支部领导班子2025年民主生活会“四个带头”个人对照检查材料范文.docx
- 2024年抓基层党建工作述职报告参考范文.docx
- 2024年度民主生活会征求意见情况的报告范文2篇.docx
- 普通党员2024年组织生活会个人“四个带头”对照检查发言材料2篇.docx
文档评论(0)