• 求图像的信息熵


      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 }
    View Code
  • 相关阅读:
    程序为什么加载到内存中
    cortex-A cortex-R cortex-M处理器的性能比较
    makefile 中的赋值方式
    python(老男孩全栈观后感------文件处理)
    python------lambda(匿名函数)
    python------filter(过滤器)
    Express深入解读
    nodejs安装
    一道有意思的题目
    charAt获取数组,测试
  • 原文地址:https://www.cnblogs.com/yongjiuzhizhen/p/3454502.html
Copyright © 2020-2023  润新知