信息熵与图像熵计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p (a i ) ∑ n
《信息论与编码》课程实验报告
班级:通信162
姓名:李浩坤 学号:163977
实验一
信息熵与图像熵计算 实验日期:2018.5.31
一、实验目的 1.
复习 MATLAB 的基本命令,熟悉 MATLAB 下的基本函数。 2. 复习信息熵基本定义, 能够自学图像熵定义和基本概念。
二、实验原理及内容
1.能够写出 MATLAB 源代码,求信源的信息熵。
2.根据图像熵基本知识,综合设计出 MATLAB 程序,求出给定图像的图像熵。
1.MATLAB 中数据类型、矩阵运算、图像文件输入与输出知识复习。
2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。所发出
的消息不同,它们所含有的信息量也就不同。任何一个消息的自信息量都代表不了信源所包含的平均自信息量。不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量: H (X ) = E [ log 1 ] = -∑ p (a i ) log p (a i )
i =1
信息熵的意义:信源的信息熵H 是从整个信源的统计特性来考虑的。它是从平均意义上来表征信源的总体特性的。对于某特定的信源,其信息熵只有一个。不同的信源因统计特性不同,其熵也不同。
1. 学习图像熵基本概念,能够求出图像一维熵和二维熵。
图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令 P i 表示图像中灰度值为 i 的像素所占的比例,则定义灰度图像的一元灰度熵为:
255
H = p i log p i
i =0
图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0 <= i <= 255),j 表示邻域灰度(0 <= j <= 255),
p
ij
=f (i, j) / N 2
上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i, j)
为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:
255
H =p
ij log p
ij
i=0
构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征.
三、实验步骤
1.求解信息熵过程:
1)输入一个离散信源,并检查该信源是否是完备集。
2)去除信源中符号分布概率为零的元素。
3)根据平均信息量公式,求出离散信源的熵。
2.图像熵计算过程:
1)输入一幅图像,并将其转换成灰度图像。
2)统计出图像中每个灰度阶象素概率。
3)统计出图像中相邻两象素的灰度阶联合分布矩阵。
4)根据图像熵和二阶熵公式,计算出一幅图像的熵。
四、实验结论分析
程序代码;
I=imread('lena.bmp');%读取图像文件
%I=double(I);
[C,R]=size(I); %数据大小
Img_size=C*R; %图像像素点的总个数 C=512 R=1536
L=256; %图像的灰度级
H_img=0;%定义图像
nk=zeros(L,1);%定义零矩阵
for i=1:C
for j=1:R
Img_level=I(i,j)+1;%获取图像的灰度级
nk(Img_level)=nk(Img_level)+1;%统计每个灰度级像素点数
end
end
for k=1:L
Ps(k)=nk(k)/Img_size; %计算每一个灰度级像素点占得概率
if Ps(k)~=0; %去掉像素为零的像素点
H_img=-Ps(k)*log2(Ps(k))+H_img; %求熵
∑
end
end
H_img
运行结果:
H_img =
7.7498
五、心得体会
在这次试验中熟悉了Matlab软件编写程序环境和一些函数的功能及使用,掌握了信息熵,图像熵的计算方法,并且了解到了图像熵表示为图像灰度级集合的比特平均数,也描述了图像信源的平均信息量。知道了图像通过MATLAB软件可以被数据化,可以被量化,并区分了灰度级和灰度值得含义。