实验一-灰度图像信息熵的相关计算与分析
- 格式:doc
- 大小:675.00 KB
- 文档页数:6
实验2a 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。
二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。
三、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。
我们可以分别使用MA TLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。
为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
代数运算的结果很容易超出数据类型允许的范围。
图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。
2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。
对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。
需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。
数字图像处理实验报告——图像常用格式及显示武汉大学2016.041 实验内容本实验报告主要介绍主要内容1. 理解灰度映射原理;2. 掌握灰度映射计算方法;3. 理解图像直方图的定义;4. 理解图像直方图的作用;5. 理解图像熵的定义及作用;6. 掌握图像直方图计算方法;7. 掌握图像熵的计算方法;8. 进一步熟悉图像文件256色、24位真彩色BMP图像格式;9. 进一步熟悉Visual C++ 6.0编程界面,及使用方法;10. 熟悉Visual C++中绘图函数方法;11. 编程完成计算图像几种灰度映射;12. 编程实现计算图像直方图、图像熵;13. 编程绘制图像直方图;14. 根据不通灰度映射处理观察图像直方图变化;15. 总结实验过程(实验报告):编程、调试、结果、分析、结论。
主要目的1. 建立相关实验环境:从指定服务器指定位置拷贝实验相关材料,包括:实验要求,实例程序,示例图像,VC++6.0程序,实验相关幻灯片;2. 使用实验一建立的简单多文档应用程序框架及、图像夺取和显示功能,进一步熟悉图像的格式及显示,熟悉图像的组织和存储方式。
3. 编写图像线性灰度映射:4. 编写图像直方图统计程序:5. 观察图像直方图主要函数说明1.void CZhangyanImageView::OnProcessZhifangtu()函数目的:在用户界面中添加直方图处理,并添加函数在.cpp文件中函数参数说明:建立直方图处理函数2.void CZhangyanImageView::OnProcessLinetran()函数目的:在用户界面中添加灰度变换处理,并添加函数在.cpp文件中函数参数说明:建立灰度变换处理函数主要代码注释1.灰度变换函数代码CZhangyanImageDoc* pDoc = GetDocument();//定义引用doc的指针ASSERT_V ALID(pDoc);unsigned char * pBits=pDoc->m_pBits;//把文件中的m_pBits赋予pBitsint nWidth=pDoc->imageWidth;int nHeight=pDoc->imageHeight;//定义整形的image图片宽和高int nValue=0;double dValue=0.0;long lTotal=0;long lTotalD=0;long lTotalL=0;int ab=100,bb=255,a=0,b=255;//定义原图像的灰度值0-255范围,定义处理后图像灰度值100-255范围if(pBits==NULL) return ;//遍历完成则返回for(int i=0;i<nHeight;i++){lTotalL=nWidth*i;//统计出宽*当前高for(int j=0;j<nWidth;j++){lTotalD=lTotalL+j;//统计出第几个像素nValue=*(pBits+lTotalD);// 采用int nValue= *(m_pBits imageWidth * i+j )公式获得图像点灰度值dValue=ab+1.0*(bb-ab)/(b-a)*(nValue-a);//套用灰度变换公式pBits[lTotalD]=int(dValue);}}//对图像进行遍历与灰度处理Invalidate();//强制显示改变了的图像2.直方图生成函数m_bShow=TRUE;CZhangyanImageDoc* pDoc = GetDocument();//定义引用doc的指针ASSERT_V ALID(pDoc);unsigned char * pBits=pDoc->m_pBits; //把文件中的m_pBits图像指针赋予pBitsint nWidth=pDoc->imageWidth;int nHeight=pDoc->imageHeight; //定义整形的image图片宽和高int nValue=0;long lTotal=0;long lTotalD=0;long lTotalL=0;dMax=0;dMaxG=0;dMaxB=0;//数据初始化赋值存储图像灰度像素的计数if(pBits==NULL) return ;if(pDoc->m_nColorBits==8) //对图像进行是否是8彩色的判断{for(int k=0;k<256;k++){m_lValue[k]=0;m_dValue[k]=0.0;}for(int i=0;i<nHeight;i++){lTotalL=nWidth*i;for(int j=0;j<nWidth;j++){lTotalD=lTotalL+j;nValue=*(pBits+lTotalD);//统计灰度值m_lValue[nValue]=m_lValue[nValue]+1;//加1 }}lTotal=nWidth*nHeight;for(INT k=0;k<256;k++){m_dValue[k]=1.0*m_lValue[k]/lTotal;if(dMax<m_dValue[k]) dMax=m_dValue[k];}}//对图像进行遍历并统计直方图数据long nValueG=0;long nValueB=0;//统计R G Bif(pDoc->m_nColorBits==24) //对图像进行是否是24彩色的判断{for(int k=0;k<256;k++){m_lValue[k]=0;m_dValue[k]=0.0;m_lValueG[k]=0;m_dValueG[k]=0.0;m_lValueB[k]=0;m_dValueB[k]=0.0;//}for(int i=0;i<nHeight;i++){lTotalL=nWidth*i;for(int j=0;j<nWidth;j++){lTotalD=(lTotalL+j)*3;nValue=*(pBits+lTotalD);m_lValue[nValue]=m_lValue[nValue]+1;nValueG=*(pBits+lTotalD+1);m_lValueG[nValueG]=m_lValueG[nValueG]+1;nValueB=*(pBits+lTotalD+2);m_lValueB[nValueB]=m_lValueB[nValueB]+1;}}lTotal=nWidth*nHeight;for(int k=0;k<256;k++){m_dValue[k]=1.0*m_lValue[k]/lTotal;if(dMax<m_dValue[k]) dMax=m_dValue[k];m_dValueG[k]=1.0*m_lValueG[k]/lTotal;if(dMaxG<m_dValueG[k]) dMaxG=m_dValueG[k];m_dValueB[k]=1.0*m_lValueB[k]/lTotal;if(dMaxB<m_dValueB[k]) dMaxB=m_dValueB[k];}}//对图像进行遍历并统计直方图数据Invalidate();/强制显示改变了的图像3.变量声明void DrawGraph(CDC * pDC);//绘制直方图函数long m_lValue[256];//红色分量灰度统计double m_dValue[256];// 红色分量灰度频数long m_lValueG[256]; //绿色分量灰度统计double m_dValueG[256]; // 绿色分量灰度频数long m_lValueB[256]; //蓝色分量灰度统计double m_dValueB[256]; //蓝色分量灰度频数double dMax,dMaxG,dMaxB;//红、绿、蓝频数最大值BOOL m_bShow;//是否显示直方图4.图形绘制CZhangyanImageDoc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// CCCJImageDoc* pDoc 在各人的程序中不一样unsigned char * pBits=pDoc->m_pBits;int X0=0+5;int Y0=510;int WX=768+3,HY=500;int H=375;int W=256;CPen cyPen(PS_SOLID,2,RGB(255,255,0));CPen * oldPen=pDC->SelectObject(&cyPen);pDC->MoveTo(X0,Y0);pDC->LineTo(X0+WX,Y0);pDC->MoveTo(X0,Y0);pDC->LineTo(X0,Y0-HY);pDC->MoveTo(X0,Y0-HY);pDC->LineTo(X0+WX,Y0-HY);pDC->MoveTo(X0+WX,Y0);pDC->LineTo(X0+WX,Y0-HY);pDC->SelectObject(&oldPen);//设置直方图的区域{CPen redPen(PS_SOLID,1,RGB(255,0,0));oldPen=pDC->SelectObject(&redPen);for(int i=0;i<256;i++){int x0,y0,x1,y1;double dy;x0=X0+i*3;y0=Y0;x1=X0+i*3;dy=Y0-1.0*H*m_dValue[i]/dMax;y1=int(dy+0.5);pDC->MoveTo(x0,y0);pDC->LineTo(x1,y1); //进行绘图操作}pDC->SelectObject(oldPen);//以下略去对于24位的解释1.1灰度变换结果图灰度变换结果1.2图像直方图图读取图像直方图2实验日志2.1实验中遇到问题较于上次试验,本次试验显得轻车熟路许多,内容与调试也比较简单,感觉编写实验报告中遇到的最大困难就是对代码的阐述。
实验二 熵的计算一、实验目的通过本次实验的练习,使学生进一步巩固熵的基本概念,掌握熵的统计方法,培养学生使用编程工具进行分析计算的基本能力。
二、实验仪器与软件1. PC 机 1台2. MATLAB7.0环境三、实验原理(一)信息熵的基本原理离散信源数学模型如下(设该信源可能取的符号有n 个):⎭⎬⎫⎩⎨⎧=⎥⎦⎤⎢⎣⎡)(,),(,),(),( ,, , , , )( 2121n i n i a p a p a p a p a a a a X P X 则该信源的信息熵为)(log )()(21i n i ix p x p X H ∑==H(X)是信源X 中每个事件出现的平均信息量,或者说H(X)表示了信源X 中各符号出现的平均不确定性。
图像的信息熵设数字图像的灰度级集合为{r 1,r 2,…,r m },其对应的概率分别为p (r 1),p (r 2),…,p (r m ),则图像的信息熵可以定义为:图像的信息熵表示像素各个灰度级位数的统计平均值,它给出了对此输入灰度级集合进行无失真图像编码时所需要的平均位数的下限。
(二)图像文件的读取(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 =135find(x == 0)ans =24(5)相关函数点运算在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。
认知实习报告题目 __信息熵的计算及实现_________ _ (院)系数理系 ___________ 专业 _______信息与计算科学__________________ 班级_ _ 学号_ 20081001 _学生姓名 _ _导师姓名_ ___ ________完成日期 ________2011年12月23日___________信息熵的计算及实现信息与计算科学专业:指 导 教 师:摘要:信息的销毁是一个不可逆过程,一般而言,当一种信息出现概率更高的时候,表明它被传播得更广泛,或者说,被引用的程度更高。
我们可以认为,从信息传播的角度来看,信息熵可以表示信息的价值。
这样我们就有一个衡量信息价值高低的标准,可以做出关于知识流通问题的更多推论。
本文讨论了一维几种熵的计算方法:离散信源的熵、图像熵的一维熵和二维熵、基于信息熵的Web 页面主题信息计算方法,并给出一定的理论分析和数值实验以及数值实验结果。
关键字:离散信源的熵、图像熵、Web 页面主题信息1 引言信息论之父 C. E. Shannon 在 1948 年发表的论文“通信的数学理论( AMathematical Theory of Communication )”中, Shannon 指出,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。
Shannon 借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。
2 问题提出信源的平均不定度。
在信息论中信源输出是随机量,因而其不定度可以用概率分布来度量。
记 H(X)=H(P1,P2,…,Pn)=P(xi)logP(xi),这里P(xi),i =1,2,…,n 为信源取第i 个符号的概率。
P(xi)=1,H(X)称为信源的信息熵。
2.1 离散信源的熵利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。
灰度直方图结合信息熵对图像检测的研究作者:吴宪君来源:《消费电子·理论版》2013年第11期摘要:灰度直方图能直观显示相同灰度的像素之间在空间分布上的差异,间接反映图像特征。
为了提高检索准确率引入信息熵投票的方法进行图像检测实验。
在特定的训练集的样本数的各光照强度的分别率条件下,均能得到较好的识别率,数据库60%被分配到训练集。
关键词:灰度直方图;信息熵;图像检测中图分类号:TP391.41 文献标识码:A 文章编号:1674-7712 (2013) 22-0000-01一、引言许多的面向非交互式生物识别应用和安全人-机接口脸识别系统在处理人脸图像采用预处理方法。
当图像照明变化,人物姿势和面部表情变化情况下准确率降低。
为尝试解决这个问题的方法,在特征提取步骤Turk和Pentland提出特征脸的方法,它根据一组人脸训练图像构造主元子空间[1]。
Belhumeur的FisherFace方法等回归面部表情和封闭信号稀疏表示融合信息以不同类型的传感器替代脸识别方法来得到系统鲁棒性[2]。
二、交互信息交互信息,这是信息理论中的一个基本概念[3],是1,2个随机变量X和Y之间的依赖。
基于这两个变量之间的共享信息,如果他们是离散,则它被定义为:其中p(x,y)联合概率分布函数(PDF)的变量,px(x)和py(y)是X和Y的概率密度函数分别在图像的PDF文件中估计精度,在0至1的概率值范围可把图像分为不同数量相同的宽度的区域。
强度的图像直方图与不同数量的影响标签。
三、交互算法在单侧照明的情况下,假定每个识别图像被垂直分成左右两个子图像(图1a),SL和SR。
图1(a)图1(b)图1两部分图像一半的亮面对比另一边更暗,它直接影响灰度直方图的像素强度分布。
但是如果不做这种分离,将只表示从一个正面照明图像不同的强度分布。
那么交互信息在大数量的训练集中未知的图像和图像进一步比较时则得到不可靠的结果。
同时,将图像划分成两个子图像有助于每一方可进行对光强分布的一般形状局部分析,而受制它的位置产生对轴的高度依赖。
信息熵与图像熵的计算信息熵是信息论中一个重要的概念,用来衡量信源中包含的信息量。
而图像熵是在图像处理中引入的概念,用来衡量图像中的信息量。
1.信息熵的概念信息熵是用来度量一个信源的平均信息量的,也可以看作是随机变量的不确定性的度量。
信息熵的计算公式如下:H(X) = -Σ(p(x) * log2(p(x)))其中,X表示一个离散型的信源,p(x)表示X取值为x的概率。
计算信息熵的步骤如下:1)统计信源中每个离散值出现的概率;2)根据计算出的概率值,计算每个离散值的信息量;3)将每个离散值的信息量相加,即可以得到信源的信息熵。
2.图像熵的概念图像熵是用来衡量图像中信息量的一个指标。
在图像处理中,图像熵用来描述图像的纹理复杂程度,即图像中包含的信息量。
图像熵的计算公式如下:H(I) = -Σ(p(i) * log2(p(i)))其中,I表示一个图像,p(i)表示图像中像素值为i的概率。
计算图像熵的步骤如下:1)统计图像中每个像素值出现的概率;2)根据计算出的概率值,计算每个像素值的信息量;3)将每个像素值的信息量相加,即可以得到图像的熵。
3.信息熵与图像熵的比较信息熵和图像熵的计算方法相似,但是在具体的应用场景中存在一些差别。
首先,信息熵是用来度量信源的不确定性,所以信源可以是任意类型的数据,包括离散型信源和连续型信源。
而图像熵是针对图像数据的一种度量,因此信源是离散型的。
其次,图像熵主要用来衡量图像的纹理复杂程度,所以在计算图像熵时,通常会将图像转化为灰度图像。
这样做的目的是忽略图像的颜色信息,只关注亮度信息,因为在大多数场景下,图像的颜色信息对于图像的信息量没有太大的贡献。
此外,信息熵和图像熵的计算结果都是一个非负数,越大表示信息量越大,越小表示信息量越少。
当信息熵或图像熵为0时,表示信源或图像中只有一个确定的值,没有任何信息的不确定性。
总结来说,信息熵和图像熵都是衡量信息量的一种指标,用来描述数据的不确定性或者纹理复杂程度。
图像熵计算及分割一、实验目的1.复习MATLAB 的基本命令,熟悉MATLAB 下的基本函数。
2.复习信息熵基本定义, 能够理解图像熵定义和基本概念。
3. 了解图像分割算法,并利用最小交叉熵,大津算法实现图像分割二、实验仪器、设备1.计算机。
2.Matlab 软件。
三、实验内容与原理1. 内容:1).能够写出MATLAB 源代码,求信源的信息熵。
2).根据图像熵基本知识,综合设计出MATLAB 程序,求出给定图像的图像熵。
2. 原理:信息熵:利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。
自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。
一条信息的信息量和它的不确定性有着直接的关系。
所发出的消息不同,它们所含有的信息量也就不同。
任何一个消息的自信息量都代表不了信源所包含的平均自信息量。
不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。
它是从平均意义上来表征信源的总体特性的。
对于某特定的信源,其信息熵只有一个。
不同的信源因统计特性不同,其熵也不同。
信息熵一般用符号H表示,单位是比特。
变量的不确定性越大,熵也就越大。
图像熵:1).一元灰度熵图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。
图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:其中Pi是某个灰度在该图像中出现的概率,可由灰度直方图获得。
2).二维熵图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。
选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0 <= i <= 255),j 表示邻域灰度均值(0 <= j <= 255):上式能反映某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中f(i, j)为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征3) 最小交叉熵图像分割假设存在两个分布:那么可以使用交叉熵来衡量两个分布之间的距离(用分布Q代替分布P),数学表达为:该方法被看做是在没有先验获得时对最大熵方法的扩展.在使用最小交叉熵进行图像分割时,实际上就是将原始图像f(x,y)灰度值设定一个阈值t 然后使得原始图像二值化g(x,y),数学表达为:我们需要做的就是通过一些合理的假设求解出这三个参数: 根据灰度守恒准则可以得到:易得其中, 12,N N 代表着目标和前景内的像素个数,结合交叉熵公式可得:该等式可以优化为:则阈值为:在实验过程中只需要遍历所有的灰度值,然后求出在不同灰度值下的()t η,选择最小的t 即为选定的阈值. 4)大津算法大津算法的主要流程和最小交叉熵的过程类似,在此不加以赘述,但大津算法最终确定分割阈值是基于类内方差最大的思想,即2201()m a x ()B B k L k k δδ*≤≤-=求得的分割阈值k其中:2P 等与上面公式类似五.实验代码数据及结果分析1) 求信源的信息熵function entropy = information_entropy(T) %T 是信源集 if(sum(T)~=1)fprintf('%s','信源不是完备集'); elselog_t = -log2(T); entropy = T*log_t';endend程序运行结果:2) 求图像的一维和二维信息熵代码:function gray_entropy(I)% I为输入的图片imshow(I);%三维图像转化为灰度图像if(size(I,3)~=1)I=rgb2gray(I);end%存放概率值probability = zeros(256,1);area = size(I,1)*size(I,2);entropy1 = 0;for i=1:256probability(i)=double(sum(sum(I==i-1)))/area;% plot(probability);if probability(i)==0entropy1 = entropy1;elseentropy1 = entropy1 - probability(i)*log2(probability(i));endendx = 0:255;%绘制概率分布直方图bar(x,probability);%hist(probability*area,10);%plot(probability);fprintf(num2str(entropy1));fprintf('\n');% imshow(probability);[row,rol] = size(I);%考虑边界值故对图像进行了扩充new_I1 = [zeros(1,rol);I;zeros(1,rol)];new_I2 = [zeros(row+2,1),new_I1,zeros(row+2,1)];gray_mid = zeros(256,256);for m=2:row+1for n=2:rol+1i_now = new_I2(m,n);%考虑周围四个点的平均值,边界补零j_ave = (new_I2(m-1,n)+new_I2(m+1,n)+new_I2(m,n+1)+new_I2(m,n-1))/4;gray_mid(i_now+1,j_ave+1) = gray_mid(i_now+1,j_ave+1)+1;endend% imshow(gray_mid);gray_pro = double(gray_mid)./(row*rol);entropy2 = 0;for k=1:size(gray_pro,1)for j=1:size(gray_pro,2)if gray_pro(k,j) == 0entropy2 = entropy2;elseentropy2 = entropy2 - gray_pro(k,j)*log2(gray_pro(k,j));endendendfprintf(num2str(entropy2));end天空:一维图像熵:7.3867二维图像熵:7.3859树木:一维图像熵:7.2273二维图像熵:9.4255水面:一维图像熵:7.3406二维图像熵:8.0287建筑:一维图像熵:7.3371二维图像熵:7.49482)图像分割算法:实验图像(数据来自/Research/Projects/CS/vision/bsds/)最小交叉熵法:function [ILow, IHigh, threshold] = minCEP(I)%I输入图像%ILow, IHigh, threshold返回了前景背景和阈值%该部分代码来自于网上,自己进行了修改并加了注释%部分代码与我对论文理解有出入,已经标注出来%将彩色图片换为灰度图像if(size(I,3)>=1)I = rgb2gray(I);endBW = I>0;h = imhist(I);% 不考虑非图像部分,故将灰度值为0的部分置为空集h(1) = [];% 求出了图像灰度值的概率hn = h/sum(sum(BW));sizeH = length(hn);%整幅图像的平均熵imEntropy = sum((1:sizeH) .* hn' .* log(1:sizeH));%为了获得最优的t,采取遍历手段,然后取得最小值,即为最小交叉阈值for t = 1:sizeH%Low range imagelowValue = 1;lowSum = sum(hn(1:t));% 求平均值if lowSum > 0lowValue = sum((1:t) .* hn(1:t)') / lowSum;end% High range imagehighValue = 1;highSum = sum(hn(t+1:sizeH));%求平均值if highSum > 0highValue = sum((t+1:sizeH) .* hn(t+1:sizeH)') / highSum;end% Entropy of low rangelowEntropy = sum((1:t) .* hn(1:t)' * log(lowValue));% Entropy of high rangehighEntropy = sum((t+1:sizeH) .* hn(t+1:sizeH)' ...* log(highValue));%交叉熵计算方法与原文有一定出入% Cross EntropyCE(t)= imEntropy - lowEntropy - highEntropy;end[~, threshold] = min(CE);ILow = zeros(size(I));IHigh = zeros(size(I));% 为什么不是进行了二值化处理% ILow(I<threshold) = I(I<threshold);% IHigh(I>threshold) = I(I>threshold);% ILow = uint8(ILow);ILow(I>threshold) = sum(sum(I(find(I>threshold))))/sum(sum(I>threshold));ILow(I<=threshold) =sum(sum(I(find(I<=threshold))))/sum(sum(I<=threshold));ILow = uint8(ILow);IHigh = uint8(IHigh);end阈值为:84大津算法T = graythresh(b);B = im2bw(b,T);阈值为0.4501*256=115.23) 实验结果分析:1 对于二维图像熵,从二维灰度图像直方图可以看出,当灰度值的范围越广,灰度的概率越接近的情况下,此时二维图像灰度值自由度更高,图像的二维熵越大,从所给的图像的直方图来说,显然树的二维灰度直方图中灰度值的范围更广,所以熵最大;天空的灰度范围最小,所以熵值最小;建筑和水面的二维直方图中灰度值的范围接近,但是显然水的概率值更加接近,故水的熵要大于建筑;2 对于图像分割二值化来说,确定阈值是关键;如何确定阈值,在现今的图像分割技术中,熵的方法是很重要的一种研究方向,包括一维最大熵,最小交叉熵,最大交叉熵,Shannon 熵,Tsallis熵,Renyi熵等。
灰度图像处理算法及其应用研究第一章灰度图像处理算法概述灰度图像处理算法是数字图像处理领域中的一个重要分支,主要应用于医学影像、计算机视觉、图像识别、自动化检测等领域。
灰度图像处理是将彩色图像转换为灰度图像,再利用一系列算法对灰度图像进行处理。
主要包括图像去噪、图像增强、边缘检测、图像分割等。
第二章灰度图像去噪算法研究灰度图像中可能会存在一些噪声,这对于图像的后续处理会产生一定的影响。
因此,灰度图像去噪算法是灰度图像处理中的一个重要环节。
其中,常用的去噪算法有中值滤波、均值滤波、小波变换去噪算法等。
第三章灰度图像增强算法研究在灰度图像中,存在一些信息被丢失或者噪声影响导致的信息模糊,因此需要利用一些算法对灰度图像进行增强,提高图像质量和图像细节。
主要的增强算法有直方图均衡化、自适应直方图均衡化、小波变换增强等。
第四章灰度图像边缘检测算法研究边缘检测是灰度图像处理中的一个关键步骤,它可以用于物品的自动分割、目标跟踪、目标边缘提取等。
在灰度图像边缘检测的算法中,常用的方法有Sobel算子、Roberts算子、Laplacian算子等。
第五章灰度图像分割算法研究灰度图像分割是将图像分为若干个区域,每个区域的像素具有相似的属性。
主要应用于医学影像、计算机视觉、目标识别等领域。
在灰度图像分割的算法中,常用的方法有k-means聚类、阈值分割、基于区域的分割算法等。
第六章灰度图像处理算法的应用研究灰度图像处理算法在医学影像、计算机视觉、图像识别、自动化检测等领域有着广泛的应用。
在医学影像领域,灰度图像处理算法可以用于肿瘤的识别和定位、CT、MRI图像的分析和处理等。
在计算机视觉领域,灰度图像处理算法可以用于目标识别和跟踪、车牌识别等。
在自动化检测领域,灰度图像处理算法可以用于人脸识别、人员计数、交通流量统计等。
第七章总结灰度图像处理算法是数字图像处理中的一个重要分支,对于医学影像、计算机视觉、图像识别、自动化检测等领域都有着广泛的应用。
图形图像编码中的熵编码算法使用教程在图形图像编码中,熵编码算法是一种常用的数据压缩技术。
通过对图像中的数据进行编码,可以减小图像所占用的存储空间,提高传输效率。
本文将介绍图形图像编码中的熵编码算法的使用教程,并详细解释其原理和操作步骤。
熵编码是一种无损压缩方法,它通过使用较短的位数来表示频率较高的符号,以实现数据的压缩。
在图形图像编码中,熵编码通常用于对图像中的颜色或像素值进行编码。
首先,我们需要了解熵编码的原理。
熵编码基于信息熵的概念,信息熵是用来度量信息量的一个指标。
当一个符号出现的概率越高时,其信息量越低,所需编码的位数也越少。
熵编码就是根据符号的概率分布,将频率较高的符号用较少的位数进行编码,从而减小数据的表示长度。
接下来,我们可以了解一下常用的熵编码算法,如霍夫曼编码和算术编码。
这两种算法都是通过建立符号和编码之间的对应关系来实现熵编码。
在实际使用中,我们可以先进行图像预处理,将图像进行离散化处理,将连续的像素值转化为离散的符号。
然后,利用统计方法来获取符号的概率分布。
对于图像中的颜色编码,我们可以统计每种颜色的出现次数,并计算其概率。
对于像素值编码,我们可以统计不同像素值的频率,并计算其概率。
接下来,我们需要根据符号的概率分布来构建编码表。
对于霍夫曼编码,我们可以根据符号的概率构建一颗霍夫曼树,将概率较高的符号放在树的较低层,概率较低的符号放在树的较高层。
然后,我们可以从树的根节点开始遍历树,根据左子树和右子树的关系为符号赋予相应的编码。
而对于算术编码,我们可以使用算术编码表来对符号进行编码。
编码完成后,我们将编码后的信息进行传输或存储。
在传输或存储过程中,我们需要注意将编码后的信息进行解码,以使接收方能够正确地解析图像数据。
为了正确地解码信息,接收方需要了解和发送方相同的编码表。
总结一下,图形图像编码中的熵编码算法是一种常用的数据压缩技术。
通过统计符号的概率分布,构建编码表,对数据进行编码,可以实现数据的压缩和传输效率的提高。
实验一信息熵与图像熵计算一、实验目的1.复习MATL AB 的基本命令,熟悉MATL AB 下的基本函数。
2.复习信息熵基本定义, 能够自学图像熵定义和基本概念。
二、实验仪器、设备1.计算机-系统最低配置256M 内存、P4 CPU。
2.Matlab仿真软件- 7.0 / 7.1 / 2006a等版本Mat lab 软件。
三、实验内容与原理(1)内容:1.能够写出MATLAB源代码,求信源的信息熵。
2.根据图像熵基本知识,综合设计出M ATLAB程序,求出给定图像的图像熵。
(2)原理1. MATLAB中数据类型、矩阵运算、图像文件输入与输出知识复习。
2.利用信息论中信息熵概念,求出任意一个离散信源的熵(平均自信息量)。
自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。
所发出的消息不同,它们所含有的信息量也就不同。
任何一个消息的自信息量都代表不了信源所包含的平均自信息量。
不能作为整个信源的信息测度,因此定义自信息量的数学期望为信源的平均自信息量:信息熵的意义:信源的信息熵H是从整个信源的统计特性来考虑的。
它是从平均意义上来表征信源的总体特性的。
对于某特定的信源,其信息熵只有一个。
不同的信源因统计特性不同,其熵也不同。
3.学习图像熵基本概念,能够求出图像一维熵和二维熵。
图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。
图像的一维熵表示图像中灰度分布的聚集特征所包含的信息量,令Pi 表示图像中灰度值为i的像素所占的比例,则定义灰度图像的一元灰度熵为:255log i iip p ==∑H图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。
基于三维指数灰度熵的快速图像分割算法张书真;黄光亚【摘要】针对现有阈值分割法通常只考虑图像直方图的统计信息,而忽略了图像目标和背景类内灰度分布的均匀性,提出指数灰度熵分割算法,并推广得到三维指数灰度熵分割算法。
给出了一维指数灰度熵阈值法及三维指数灰度熵阈值法的原理,在三维直方图上,将降维处理和优化搜索策略相结合,得到最优分割阈值。
理论证明,阈值搜索复杂度由原来的O(L3)降至O(L12)。
实验结果表明,与现有的多种阈值法相比,所提算法抗噪性能更强、分割效果更优,且运算时间大为减少。
%In view of the existing threshold segmentation methods which usually only consider the statistical information from image histogram, while ignoring the gray distribution uniformity of the image target class and the background class, one-dimensional exponential gray entropy segmentation algorithm is put forward and three-dimensional exponential gray entropy segmentation algorithm is deduced. The principles of one-dimensional exponential gray entropy algorithm and three-dimensional exponential gray entropy algorithm are presented. The optimum segmentation threshold is got by combining dimension reduction and optimal search strategy on the three-dimensional histogram. The search complexity is reduced from O(L3) to O(L1/2) in theory. Experimental results show that, compared with other existing threshold algorithms, the proposed algorithm has better anti-noise performance, segmentation effect and its operation time is reduced greatly.【期刊名称】《计算机工程与应用》【年(卷),期】2013(000)021【总页数】4页(P119-122)【关键词】阈值分割;三维直方图;指数灰度熵;降维处理;搜索策略【作者】张书真;黄光亚【作者单位】吉首大学信息科学与工程学院,湖南吉首 416000;吉首大学信息科学与工程学院,湖南吉首 416000【正文语种】中文【中图分类】TP391.41图像分割是数字图像处理中的一项关键技术,它是对图像进行视觉分析和模式识别的基本前提[1]。
信息熵信息论之父 C. E. Shannon信息是个很抽象的概念。
我们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。
比如一本五十万字的中文书到底有多少信息量。
直到 1948 年,香农提出了“信息熵”(shāng) 的概念,才解决了对信息的量化度量问题。
信息论之父 C. E. Shannon 第一次用数学语言阐明了概率与信息冗余度的关系。
目录理论提出信息含义理论提出信息含义展开编辑本段理论提出信息论之父 C. E. Shannon 在 1948 年发表的论文“通信的数学理论( A Mathematical Theory of Communication )”中, Shannon 指出,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。
Shannon 借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。
编辑本段信息含义现代定义信息是物质、能量、信息及其属性的标示。
【逆维纳信息定义】信息是确定性的增加。
【逆香农信息定义】信息是事物现象及其属性标识的集合。
【2002年】最初定义信息理论的鼻祖之一Claude E. Shannon把信息(熵)定义为离散随机事件的出现概率。
所谓信息熵,是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率。
而信息熵和热力学熵是紧密相关的。
根据Charles H. Bennett对Maxwell's Demon的重新解释,对信息的销毁是一个不可逆过程,所以销毁信息是符合热力学第二定律的。
而产生信息,则是为系统引入负(热力学)熵的过程。
所以信息熵的符号与热力学熵应该是相反的。
一般而言,当一种信息出现概率更高的时候,表明它被传播得更广泛,或者说,被引用的程度更高。
我们可以认为,从信息传播的角度来看,信息熵可以表示信息的价值。
这样子我们就有一个衡量信息价值高低的标准,可以做出关于知识流通问题的更多推论。
数字图像处理实验报告学院:专业:姓名:学号:直方图和直方图均衡化一、实验目的1. 改善图像的视觉,提高清晰度;2. 增强人们感兴趣部分,到视觉效果更好的图像,以提高图像的可懂度。
3、增强直方图均衡化的认识和了解二、实验原理直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设非均匀直方图分布函数P r (r )经转换函数s=T (r )转化为均匀直方图分布函数P s (s)的情况,r 为变化前的归一化灰度级,0≤r ≤1. T (r )为转换函数, s=T (r )为变化后的归一化灰度级,则T (r )应满足以下条件:(1)在0≤r ≤1,范围内是一个单值单增函数。
(2)对于0≤r ≤1,对应有0≤s=T (r )≤1.保证变换后像素灰度级仍在允许范围内。
在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk 到gk 的灰度映射关系。
在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化三、实验主要内容1、统计原始图像的直方图,求出2、用累积分布函数作变换,求变换后的新灰度; 3、用新灰度代替旧灰度,求出,这一步是近似的,力求合理,同时把灰度相等的或相近的合在一起。
四、实验程序及结果1、实验程序#include<stdio.h>#include<math.h>#include<stdlib.h>void main(){ int c,i=0,j=0,y;long sum=0,su=0,k=0,l=0,t=0,h=0;static inta[256],a1[256],b[256],s[256],d[256][256],d1[65536],B[256][256],d2[655 36];FILE *fp,*fp1;char filename[20],filename1[20];double p1[256],p2[256];printf(" 输入文件名:");scanf("%s",filename);printf(" 输入新的文件名:");scanf("%s",filename1);if ((fp=fopen(filename,"rb"))==0){printf("不能打开文件\n");exit(0);}fp1=fopen(filename1,"w");while(!feof(fp)){c=fgetc(fp);a[c]++; }rewind(fp);while(!feof(fp)){c=fgetc(fp);d2[t]=c;t++;}t=0;for(i=0;i<256;i++)for(j=0;j<256;j++){B[i][j]=d2[t];t++;}for(i=0;i<256;i++)printf("%d\t",a[i]);printf("\n");for(i=0;i<256;i++){sum=sum+a[i];}printf("%d\n",sum);for(i=0;i<256;i++)p1[i]=a[i]/65536.0;}p2[0]=p1[0];for(i=1;i<256;i++){p2[i]=p2[i-1]+p1[i];}for(i=0;i<256;i++){s[i]=(int)(p2[i]*255+0.5);}for(i=0;i<256;i++)for(j=0;j<256;j++){d[i][j]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++){ y=B[i][j];d[i][j]=s[y];}}for(i=0;i<256;i++)for(j=0;j<256;j++){d1[h]=d[i][j];h++;}for(i=0;i<256;i++){b[i]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++)if(i==s[j])b[i]=b[i]+a[j];}printf("输出\n");for(i=0;i<255;i++){printf("%d\t",b[i]);printf("\n");for(i=0;i<256;i++){su=su+b[i];}printf("%d\n",su);for(h=0;h<65536;h++){fputc(d1[h],fp1);}printf("新文件已保存\n");fclose(fp);fclose(fp1);}2、实验结果五、结果分析本次实验通过对图像进行均衡化处理,即把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,也就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同,然而这样做却使图像的灰度值减少,甚至细节消失,而部分图像的对比度过分增强,直方图有高峰,影响了图像的实际效果。
计算图像信息熵报告1. 简介图像信息熵是一种用来描述图像中信息量的指标,它可以反映图像的复杂程度和信息丰富度。
本报告将介绍计算图像信息熵的步骤和方法。
2. 图像信息熵的定义图像信息熵是指图像中每个像素点的信息量的平均值。
信息量的计算可以通过像素的灰度值来实现。
在灰度图像中,每个像素的灰度值通常是一个从0到255的整数,代表了图像中的亮度。
3. 计算图像信息熵的步骤计算图像信息熵的步骤如下:步骤一:将图像转换为灰度图像在计算图像信息熵之前,首先需要将彩色图像转换为灰度图像。
这是因为彩色图像包含了RGB三个通道的信息,而计算信息熵只需要考虑灰度值。
步骤二:计算每个像素的灰度值频率对于灰度图像中的每个像素点,计算其灰度值出现的频率。
频率可以通过统计每个灰度值在图像中出现的次数来得到。
步骤三:计算每个像素的信息量利用每个像素的灰度值频率,计算每个像素的信息量。
信息量可以通过以下公式计算:信息量 = -频率 * log(频率)步骤四:计算图像信息熵将每个像素的信息量相加,然后取平均值,即可得到图像的信息熵。
信息熵的计算公式如下:信息熵 = 平均信息量 = 总信息量 / 像素数量4. 示例代码以下是使用Python编程语言实现计算图像信息熵的示例代码:import cv2import numpy as npimport mathdef calculate_entropy(image):gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)height, width = gray_image.shapepixel_count = height * width# 计算灰度值频率gray_level_counts = np.bincount(gray_image.flatten(), minlength=256) gray_level_probabilities = gray_level_counts / pixel_count # 计算信息量entropy =0for p in gray_level_probabilities:if p >0:entropy -= p * math.log2(p)return entropy# 读取图像image = cv2.imread("example.jpg")# 计算图像信息熵entropy = calculate_entropy(image)print("图像信息熵为:", entropy)5. 结论本报告介绍了计算图像信息熵的步骤和方法。
灰色关联熵灰色关联熵(Grey Relational Entropy)是一种用于研究灰色关联性分析的数学方法,广泛应用于多领域的工程与管理决策中。
本文将从灰色关联熵的定义、计算公式、应用案例等方面进行详细介绍。
1. 灰色关联熵的定义:灰色关联熵是针对灰色关联性分析的一种信息度量,用于衡量因素与参考序列之间的关联程度。
灰色关联性分析是通过建立指标序列与评价序列之间的关联度,确定各指标对综合效果的影响程度,从而进行综合排名与决策的方法。
2. 灰色关联熵的计算公式:灰色关联熵的计算公式如下:灰色关联熵 = -∑(xi - yi)ln(xi / yi)其中,xi和yi分别表示参考序列和灰色关联序列的第i个数据。
3. 灰色关联熵的应用案例:(1)工程管理:在工程管理中,常常需要对影响工程进度的各项因素进行分析和评价。
通过灰色关联熵的计算,可以确定各个因素对工程进度的影响程度,有助于制定有效的控制措施,提高工程管理效率。
(2)金融风险评估:金融领域面临着多变的市场风险,灰色关联熵可以帮助分析人员对不同因素对金融风险的影响进行度量。
通过计算灰色关联熵,可以确定不同因素对金融风险的贡献程度,从而制定相应的风险控制策略。
(3)环境评价:在环境评价中,需要考虑各因素对环境影响的程度。
利用灰色关联熵可以对环境因素进行综合评价,确定各因素对环境的贡献程度,为环境保护提供科学依据。
(4)医疗决策:在医疗决策中,常常需要将多个因素进行综合评估,确定最优决策方案。
通过灰色关联熵的计算,可以对各因素对患者治疗效果的影响进行评估,帮助医生做出更科学的决策。
总结:灰色关联熵作为一种用于灰色关联性分析的数学方法,可以用于多领域的工程与管理决策中。
通过灰色关联熵的计算,可以对各因素与参考序列之间的关联程度进行量化,为决策提供科学依据。
在实际应用中,灰色关联熵已经被广泛应用于工程管理、金融风险评估、环境评价和医疗决策等领域,取得了良好的效果。
基于信息熵的光学成像系统分析信息熵是信息论中的一个重要概念,用于衡量信息的不确定性。
在光学成像系统中,信息熵可以用于分析图像的质量和清晰度,并作为优化系统性能的一个指标。
光学成像系统是将光学信息转换为电子信号或数字图像的装置。
在图像获取过程中,光学系统通过调节光照、物镜的焦距等参数来获取所需的图像。
由于光传输过程中存在光的散射、衍射、吸收等现象,图像的清晰度和质量受到一定程度上的影响。
信息熵可以用于衡量图像中的信息量和不确定性。
在光学成像系统中,信息熵可以通过计算图像的灰度分布来估计。
灰度分布是描述图像中像素灰度级别出现的概率的函数。
高熵的图像意味着其中包含了丰富的信息,而低熵的图像则相反。
通过分析图像的信息熵,可以得到以下几个方面的信息:1. 图像清晰度:信息熵的数值可以反映图像的清晰度。
当图像清晰度较高时,图像中的物体边界和细节更加清晰,灰度分布更加均匀,信息熵较高。
反之,当图像模糊或低对比度时,图像中的物体边界和细节不清晰,灰度分布较为集中,信息熵较低。
2. 噪声分析:光学系统中的噪声会降低图像的清晰度和质量。
通过分析图像的信息熵,可以估计噪声对图像质量的影响程度。
当噪声较小时,图像中的细节信息能够得到保留,灰度分布较分散,信息熵较高。
而当噪声较大时,图像中的细节被扰动,灰度分布较集中,信息熵较低。
基于信息熵的光学成像系统分析可以用于优化图像的清晰度、降低噪声和提高对比度。
通过调节光照、物镜的焦距等参数,可以使得图像的信息熵达到最大化,从而获得高质量的图像。
通过对比不同图像的信息熵,还可以进行图像质量的比较和评估,有助于选择最优的图像处理算法和光学参数。
信息论与编码实验报告,信息论与编码实验报告,姓名:xxxxx学号: xxxxxxxx专业:电子信息工程班级:电子信息xxxx班指导老师: xx实验一关于信源熵的实验一、实验目的1. 掌握离散信源熵的原理和计算方法。
2. 熟悉matlab 软件的基本操作,练习使用matlab 求解信源的信息熵。
3. 自学图像熵的相关概念,并应用所学知识,使用matlab 或其他开发工具求解图像熵。
4. 掌握Excel的绘图功能,使用Excel绘制散点图、直方图。
二、实验原理1. 离散信源相关的基本概念、原理和计算公式产生离散信息的信源称为离散信源。
离散信源只能产生有限种符号。
随机事件的自信息量I(xi)为其对应的随机变量xi 出现概率对数的负值。
即: I (xi )= -log2p ( xi)随机事件X 的平均不确定度(信源熵)H(X)为离散随机变量 xi 出现概率的数学期望,即:2.二元信源的信息熵设信源符号集X={0,1} ,每个符号发生的概率分别为p(0)= p,p(1)= q,p+ q =1,即信源的概率空间为 :则该二元信源的信源熵为:H( X) = - plogp–qlogq = - plogp –(1 - p)log(1- p) 即:H (p) = - plogp –(1 - p)log(1- p) 其中 0 ? p ?13. MATLAB二维绘图用matlab 中的命令plot( x , y) 就可以自动绘制出二维图来。
例1-2,在matlab 上绘制余弦曲线图,y = cos x ,其中 0 ? x ? 2>>x =0:0.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,…,6.2>>y =cos(x ); %计算余弦向量>>plot(x ,y ) %绘制图形4. MATLAB求解离散信源熵求解信息熵过程:1) 输入一个离散信源,并检查该信源是否是完备集。
实验一灰度图像信息熵的相关计算与分析一、实验目的1、复习信息熵,条件熵,联合熵,互信息,相对熵的基本定义, 掌握其计算方法,学习互信息与相对熵的区别之处并比较两者的有效性,加深对所学理论理论知识的理解。
2、掌握图像的的基本处理方法,了解图像的编码原理。
3、学习使用matlab ,掌握matlab 的编程。
4、通过对比分析,。
在解决问题的过程中,锻炼自身对问题的研究能力。
二、实验内容与要求1、计算灰度图像的信息熵,条件熵,联合熵,互信息,相对熵,并比较互信息和相对熵在判别两幅图像的联系与区别。
2、利用matlab 编程计算,并书写完整实验报告。
三、实验原理1、信息熵离散随机变量X 的熵H(X)为: ()()log ()x H X p x p x χ∈=-∑图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。
图像的一 维熵表示图像中灰度分布的聚集特征所包含的信息量,将图像的灰度值进行数学统计,便可得到每个灰度值出现的次数及概率,则定义灰度图像的一元灰度熵为:255log iii H p p==-∑利用信息熵的计算公式便可计算图像的信息熵,求出任意一个离散信源的熵(平均自信息量)。
自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。
所发出的消息不同,它们所含有的信息量也就不同。
任何一个消息的自信息量都代表不了信源所包含的平均自信息量。
信息熵的意义:信源的信息熵H 是从整个信源的统计特性来考虑的。
它是从平均意义上来表征信源的总体特性的。
对于某特定的信源,其信息熵只有一个。
不同的信源因统计特性不同,其熵也不同。
图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。
选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0255)i ≤≤,j 表示邻域灰度(0255)j ≤≤,2(,)/ij P f i j N=上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中 f(i, j)为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:2550log ij iji H p p ==∑构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征。
实验一
灰度图像信息熵的相关计算与分析
一、实验目的
1、复习信息熵,条件熵,联合熵,互信息,相对熵的基本定义, 掌握其计算方法,学习互信息与相对熵的区别之处并比较两者的有效性,加深对所学理论理论知识的理解。
2、掌握图像的的基本处理方法,了解图像的编码原理。
3、学习使用matlab ,掌握matlab 的编程。
4、通过对比分析,。
在解决问题的过程中,锻炼自身对问题的研究能力。
二、实验内容与要求
1、计算灰度图像的信息熵,条件熵,联合熵,互信息,相对熵,并比较互信息和相对熵在判别两幅图像的联系与区别。
2、利用matlab 编程计算,并书写完整实验报告。
三、实验原理
1、信息熵
离散随机变量X 的熵H(X)为: ()()log ()
x H X p x p x χ
∈=-∑
图像熵是一种特征的统计形式,它反映了图像中平均信息量的多少。
图像的一 维熵表示图像中灰度分布的聚集特征所包含的信息量,将图像的灰度值进行数学统计,便可得到每个灰度值出现的次数及概率,则定义灰度图像的一元灰度熵为:
255
log i
i
i H p p
==-∑
利用信息熵的计算公式便可计算图像的信息熵,求出任意一个离散信源的熵(平均自信息量)。
自信息是一个随机变量,它是指某一信源发出某一消息所含有的信息量。
所发出的消息不同,它们所含有的信息量也就不同。
任何一个消息的自信息量都代表不了信源所包含的平均自信息量。
信息熵的意义:信源的信息熵H 是从整个信源的统计特性来考虑的。
它是从平均意义上来表征信源的总体特性的。
对于某特定的信源,其信息熵只有一个。
不同的信源因统计特性不同,其熵也不同。
图像的一维熵可以表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,可以在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。
选择图像的邻域灰度均值作为灰度分布的空间特征量,与图像的像素灰度组成特征二元组,记为( i, j ),其中i 表示像素的灰度值(0255)i ≤≤,j 表示邻域灰度(0255)j ≤≤,
2
(,)/ij P f i j N
=
上式能反应某像素位置上的灰度值与其周围像素灰度分布的综合特征,其中 f(i, j)为特征二元组(i, j)出现的频数,N 为图像的尺度,定义离散的图像二维熵为:
255
0log ij ij
i H p p ==∑
构造的图像二维熵可以在图像所包含信息量的前提下,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征。
2、联合熵
离散型随机变量(X,Y )的联合分布函数为
(,)p x y ,其联合熵(,)H X Y :
(,)(,)log (,)
x y H X Y P x y P x y χγ
∈∈=-∑∑
3、条件熵
若(,)~(,)X Y p x y ,则条件熵(/)H Y X 为:
(/)()(/)
x X
H Y X p x H Y X x ∈==∑
()(/)log (/)
x X
y Y
p x p y x p y x ∈∈=-∑∑
(,)log (/)
x X y Y
p x y p y x ∈∈=-∑∑
log (/)E p Y X =-
4、相对熵
相对熵是对两种分布之间的偏移的测量,在统计学中,以概率比的对数的期望形式出现。
相对熵是两个概率分布P 和Q 差别的非对称性的度量。
是用来度量使用基于Q 的编码来编码来自P 的样本平均所需的额外的比特个数。
典型情况下,P 表示数据的真实分布,Q 表示数据的理论分布,模型分布,或P 的近似分布。
相对熵的定义如下: p(x) 和 q(x)之间相关熵为
()(//)()log
()x X
p x D p q P x q x ∈=∑
()log
()p p X E q X =
5、互信息
互信息是一个随机变量包含另一个随机变量多少的一个量度,是一个随机变量由另一个随机变量的信息其不确定性的减少。
互信息的定义如下:两个随机变量X 和Y ,联合概率分布函数p(x, y),边缘概率分布函数为p(x)和p(y),互信息为联合分布和分布乘积之间的相对熵。
(,)(;)(,)log
()()x X y Y
p x y I X Y p x y p x p y ∈∈=∑∑
互信息是一有用的信息度量,指两个事件集合之间的相关性,互信息的值越大(小),相关程度越高(低)。
相对熵是两个概率分布差别的非对称性的度量,是用来度量使用基于一个的编码来编码来自另一个的样本平均所需的额外的比特个数,相对熵的值越大(小),非对称性的量度越大(小),侧面反映相关程度的低(高)。
两者都可以用来衡量两幅图像的相关程度,但是也有区别。
四、实验步骤
1) 输入一幅图像,并将其转换成灰度图像。
2) 统计出图像中每个灰度阶象素概率。
3) 统计出图像中相邻两象素的灰度阶联合分布矩阵。
4) 计算出每幅图像的熵和成对图像的条件熵,联合熵,互信息,相对熵 5)分析实验结果。
五、实验结果及分析
图一对比图对比图与图一相同部分
3)结果分析:
从原始图像可以看出图1分别与图2,图3,图4的差别原来越大。
从计算结果上看,它们的互信息的值越来越小、相对熵的值越来越大,与实际相符,结果正确。
回顾互信息与相对熵的定义,我们可以了解到互信息是一种有用的信息度量,它是指两个事件集合之间的相关性,因此互信息越大,二者的相似程度就越高。
而相对熵基于熵来定义,其直观意义是用p进行编码平均比q多的比特数,也就是p与q的差距,p与q差距越大相对熵就越大。
用两者不同的信息去衡量相同的信息,会产生较大的误差。
所以在衡量两个随机变量的相关程度时,互信息要比相对熵有优势,效果会更好一些。
六、心得体会
本次大作业我们首先对之前学过的知识复习一下,加深对信息熵、联合熵、互信息、条件熵以及相对熵的理解。
对于KL散度,虽然老师上课有专门讲解过,但是具体操作的时候还是概念不太清晰,为此我们参考网络已有的资料又重新学习了一下。
在图像的选择方面,我们刚开始决定用一组图像来计算,但是一组图像并不能完全说明互信息与相对熵之间的对比关系,最后经过讨论我们决定采用多组图像进行对比。
整个作业过程中程序仍然是大问题,我们不断的对程序进行修改,时间主要耗费在程序编写与数据的分析。
最后还是依靠大家一起合作,顺利完成了此次作业。