1948年,香农(Claude E. Shannon)提出了信息熵的概念,解决了对信息的量化度量问题。香农第一次用数学语言描述了概率于信息冗余度的关系。
信息的定义:
信息是确定性的增加。
信息是物质、能量、信息及其属性的标示。
所谓信息熵,是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率。根据Charles H. Bennett对Maxwell's Demon的重新解释,对信息的销毁是一个不可逆过程,所以销毁信息是符合热力学第二定律(熵增定律)的。一般而言,当一种信息出现概率更高的时候,表明它被传播得更广泛,或者说,被引用的程度更高。我们可以认为,从信息传播的角度来看,信息熵可以表示信息的价值。这样子我们就有一个衡量信息价值高低的标准,可以做出关于知识流通问题的更多推论。
【计算公式】
H(x)=E[I(xi)]=E[ log(2,1/p(xi)) ]=-∑p(xi)log(2,p(xi)) (i=1,2,..n)

1 double Entropy(Mat img)
2 {
3 //将输入的矩阵为图像
4 double temp[256];
5 /*清零*/
6 for(int i=0;i<256;i++)
7 {
8 temp[i] = 0.0;
9 }
10 /*计算每个像素的累积值*/
11 for(int m=0;m<img.rows;m++)
12 {
13 const uchar* t = img.ptr<uchar>(m);
14 for(int n=0;n<img.cols;n++)
15 {
16 int i = t[n];
17 temp[i] = temp[i]+1;
18 }
19 }
20 /*计算每个像素的概率*/
21 for(int i=0;i<256;i++)
22 {
23 temp[i] = temp[i]/(img.rows*img.cols);
24 }
25 double result = 0;
26 /*根据定义计算图像熵*/
27 for(int i=0;i<256;i++)
28 {
29 if(temp[i]==0.0)
30 result = result;
31 else
32 result = result-temp[i]*(log(temp[i])/log(2.0));
33 }
34 return result;
35 }
来源:https://www.cnblogs.com/yongjiuzhizhen/p/3454502.html
