信息论编码实验二熵的计算.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息论编码实验二熵的计算

实验二 熵的计算 一、实验目的 通过本次实验的练习,使学生进一步巩固熵的基本概念,掌握熵的统计方法,培养学生使用编程工具进行分析计算的基本能力。 二、实验仪器与软件 1. PC机 1台 2. MATLAB7.0环境 三、实验原理 (一)信息熵的基本原理 离散信源数学模型如下(设该信源可能取的符号有n个): 则该信源的信息熵为 H(X)是信源X中每个事件出现的平均信息量,或者说H(X)表示了信源X中各符号出现的平均不确定性。 图像的信息熵 设数字图像的灰度级集合为{r1,r2,…,rm},其对应的概率分别为p(r1),p(r2),…,p(rm),则图像的信息熵可以定义为: 图像的信息熵表示像素各个灰度级位数的统计平均值,它给出了对此输入灰度级集合进行无失真图像编码时所需要的平均位数的下限。 (二)图像文件的读取 (1)函数imread() MATLAB通过函数imread完成图像的读取,该函数语法格式如下: I = imread(filename,fmt) 用于读取由filename指定的图像数据到数组A中,参数fmt对应于所有图像处理工具所支持的图像文件格式。如I=imread(rice.tif); (2)函数imhist() 显示图像的直方图。 用法: imhist(I,n) 计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。如果I是二值图像,那么n仅有两个值。 [counts,x] = imhist(I) 返回直方图数据向量counts或相应的色彩值向量x。 (3)函数size(a) 表示矩阵a每个维度的长度 如size([1 2 3;4 5 6]),返回[2 3],表示该矩阵有2行3列 (4)find 寻找非零元素下标 如:x = [11 0 33 0 55]; find(x) ans = 1 3 5 find(x == 0) ans = 2 4 (5)相关函数 点运算 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。 sum(X) 求和运算,对矩阵X的所有元素进行求和 for循环 例:for k=1:10 x(k)=k.^2; end 四、实验内容 (一)对给出的图像信息,读取该图像信息,并通过统计该图像的像素值情况,计算各个像素值出现的概率,得到该图像的信息熵。 (二)多个信源比较 对多个不同图像源进行(一)操作,从物理意义上对这些图像的信源熵结果进行比较分析,得出结论。 五、实验结果 (利用所学知识,完成实验内容,并将实验过程和实验步骤和结果写在报告中) I = imread(cameraman.tif); imhist(I); [counts,x] = imhist(I) ; A=size(I); Total=A(1,1)*A(1,2); B=find(counts); m=size(B); T=m(1,1)*m(1,2); S=0; for i=1:1:T P=counts(B(i,1),1)/Total; S=S-P*log2(P); end disp(S=) disp(S) S=7.0097 图1 求cameraman.tif的信息熵和灰度分布图 I = imread(lenal.jpg); imhist(I); [counts,x] = imhist(I) ; A=size(I); Total=A(1,1)*A(1,2); B=find(counts); m=size(B); T=m(1,1)*m(1,2); S=0; for i=1:1:T P=counts(B(i,1),1)/Total; S=S-P*log2(P); end disp(S=) disp(S) S=7.4070 图2 求lena1.jpg的信息熵和灰度分布图 I = imread(lena2.jpg); imhist(I); [counts,x] = imhist(I) ; A=size(I); Total=A(1,1)*A(1,2); B=find(counts); m=size(B); T=m(1,1)*m(1,2); S=0; for i=1:1:T P=counts(B(i,1),1)/Total; S=S-P*log2(P); end disp(S=) disp(S) S=7.4450 图3 求lena1.jpg

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档