实验二_信息熵与图像熵计算.pdfVIP

  • 80
  • 0
  • 约2.99千字
  • 约 4页
  • 2017-08-10 发布于重庆
  • 举报
实验二_信息熵与图像熵计算.pdf

未信的我 实验名称:信息熵与图像熵计算 一、实验目的:复习信息熵基本定义, 能够自学图像熵定义和基本概念。 二、实验内容与原理: 内容: 1.能够写出MATLAB 源代码,求信源的信息熵。 2.根据图像熵基本知识,综合设计出MATLAB 程序,求出给定图像的图像 熵。 原理: 1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。 2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。 自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出 的消息不同,它们所含有的信息量也就不同。任何一个消息的自信息量都代表不 了信源所包含的平均自信息量。不能作为整个信源的信息测度,因此定义自信息 量的数学期望为信源的平均自信息量: 信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。它是从 平均意义上来表征信源的总体特性的。对于某特定的信源,其信息熵只有一个。 不同的信源因统计特性不同,其熵也不同. 三、实验步骤 1.求解信息熵过程: 1) 输入一个离散信源,并检查该信源是否是完备集。 2) 去除信源中符号分布概率为零的元素。 3) 根据平均信息量公式,求出离散信源的熵。 H  P log P i i i 具体实现的C语言代码: #includestdio.h #includemath.h int main() { double a[100],count=0,H=0;%定义了一个双精度的数组,用以输入概率值 %count用以统计概率和 % H为离散信源的熵 int i; printf(输入概率和为1的4个概率值:\n); for (i=0;i4;i++) { scanf(%lf,a[i]); } 未信的我 for (i=0;i4;i++) { printf(%lf\n,a[i]); count=count+a[i]; if (a[i]!=0) %判断语句 H=H+(-a[i]*log(a[i])/log(2)); % 把C语言中以10为底的LOG函数 转变为以2为底的函数 else continue; } printf(离散信源的熵:%lf\n,H); } 2.图像熵计算过程: 1) 输入一幅图像,并将其转换成灰度图像。 2) 统计出图像中每个灰度阶象素概率。 3) 根据图像熵和公式,计算出一幅图像的熵。 I = imread(peppers.png); %读入彩色图像 imshow(I); img = rgb2gray(I); %将图像转换为灰度图像 [x,y] = size(img); P1 = imhist(img)/(x*y); H1=0; for i=1:256 if P1(i) ~= 0 H1 = H1+(-P1(i)*log2(P1(i))); end end H1 四、实验数据及结果分析(可附程序运行截图)

文档评论(0)

1亿VIP精品文档

相关文档