- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DIP上机报告
题 目:数字图像处理上机报告(第4次)
学 校: 中国地质大学(武汉)
指 导 老 师: 傅华明
姓 名: 龙 勋
班 级 序 号: 071112-06
目录
TOC \o 1-3 \h \u HYPERLINK 1图像霍夫曼编码与解码以及熵,平均码长,冗余度的计算 3
HYPERLINK 2上机小结 10
注:给定的文件夹中只需运行test脚本就可以得到结果,从workspace中看到相应的数据
4.2图像的霍夫曼编码与解码
题目要求:
对图2实施哈夫曼编码和解码,计算图象熵,平均码长和 冗余度;
算法设计:
1.遍历图像,统计各个像素灰度值的概率
2.找出概率最小的两个,在最小概率所代表的灰度值编码中加1,在另一个较小的概率所代表的灰度值编码中加0
3.合并两个概率,成为一个新的元素,如此重复下去,直到最后剩两个元素
4.进行编码的逆过程,即解码过程
5.计算相应的数据
程序代码:
运行代码:
clear
in=[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]=GetInfo(code); %计算熵、平均码长、冗余度
[Img]=Decode(Coded_Img,code); %对图像进行解码
图像各像素灰度的概率计算:
function[ p,out ]=gailv( in )
[M,N]=size(in);
out = zeros(4,8);
p = zeros(1,8);
for i=1:8
out(1,i)=i-1;
end
for i=1:M
for j=1:N
for k=1:8
if in(i,j) == out(1,k)
out(2,k)=out(2,k)+1;
end
end
end
end
for i=1:8
out(3,i)=out(2,i)/(M*N);
p(1,i)=out(2,i)/(M*N);
end
end
霍夫曼编码过程:
function [code_out] = Huffman(s,p)
[Ms,Ns]=size(s);
if (Ms==1)
sig=s;
else
sig=s;
end
%s为各元素名称 p为各元素概率
[Ms,Ns]=size(sig);
[Mp,Np]=size(p);
if (Ms~=Np)
return;
end
code=cell(Ms,4);%建立编码cell
code_out=cell(Ms,3);%建立输出cell
coding=cell(Ms,2);%建立编码过程中用到的cell
for i=1:Ms
code{i,1}=sig(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 (m1)%若最小值小于1(编码尚未完成)
[m1,l1]=Cell_min(coding(:,1));%找出最小值
temp_p=coding{l1,1};%记录下最小概率
coding{l1,1}=2;%将概率改为2,则以后不会再次取到
[m2,l2]=Cell_min(coding(:,1));%
您可能关注的文档
最近下载
- 你的态度决定你的高度主题班会.pptx VIP
- 2025-2026学年大象版(2024)小学科学一年级上册(全册)教学设计(附目录P110).docx
- T_CHATA 009—2020_肺结核患者居家治疗管理指南.pdf VIP
- 信号与系统第2版奥本海姆课后习题答案详解.pdf
- SQE供应商质量管理与工具运用.ppt VIP
- National Theatre Live: Prima Facie《初步举证(2022)》完整中英文对照剧本.docx VIP
- 机器人控制软件:Fanuc Robotics二次开发_(5).Fanuc机器人运动控制编程.docx VIP
- 2016-2023年内蒙古农业大学植物生理学考研真题.pdf VIP
- 有色金属冶炼工程建设项目设计文件编制标准.docx VIP
- 危险货物装卸软管定期检验规则.docx
文档评论(0)