关于GLCM的理解:
通过计算灰度图像得到它的共生矩阵,然后透过计算这个共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。
灰度共生矩阵是一种对图像处理进行定量描述的方法。灰度共生矩阵是图像中相距为D的两个灰度像素同时出现的联合概率分布。共生矩阵方法用条件概率来反映文理,是相邻像素的灰度相关性的表现。.
得到共生矩阵后如何操作:
在计算得到共生矩阵之后,往往不是直接应用计算的灰度共生矩阵,而是在此基础上计算纹理特征量,我们经常用反差、能量、熵、相关性等特征量来表示纹理特征。
(1) 反差:又称为对比度,度量矩阵的值是如何分布和图像中局部变化的多少,反应了图像的清晰度和纹理的沟纹深浅。纹理的沟纹越深,反差越大,效果清晰;反之,对比值小,则沟纹浅,效果模糊。
(2) 能量:是灰度共生矩阵各元素值的平方和,是对图像纹理的灰度变化稳定程度的度量,反应了图像灰度分布均匀程度和纹理粗细度。能量值大表明当前纹理是一种规则变化较为稳定的纹理。
(3) 熵:是图像包含信息量的随机性度量。当共生矩阵中所有值均相等或者像素值表现出最大的随机性时,熵最大;因此熵值表明了图像灰度分布的复杂程度,熵值越大,图像越复杂。
(4) 相关性:也称为同质性,用来度量图像的灰度级在行或列方向上的相似程度,因此值的大小反应了局部灰度相关性,值越大,相关性也越大。
基本原理图:
左侧是一个图像,可以看出最小的灰度级别是1,最大的灰度级别是8,共有8个灰度级别。右侧对应的灰度共生矩阵,左上角第一行与第一列的坐标(1, 1)包含值1,原因在于水平方向上,相距一个像素值,当前像素跟水平右侧相邻像素只有一个是1、1相邻的像素值(灰度级别)对;右侧共生矩阵的原始(1, 2) = 2 说明在像素矩阵中有两个像素值1,2相邻的像素点对、以此类推得到完整的右侧灰度共生矩阵。根据当前像素跟相邻像素位置不同,可以计算得到不同的共生矩阵,同时根据像素之间的距离不同会输出不同灰度共生矩阵。总结来说,有如下四种不同角度的灰度共生矩阵:
根据相邻像素点之间距离参数D不同可以得到不同距离的GLCM。此外对正常的灰度图像来说,最小灰度值为0,最大的灰度值为255,共计256个灰度级别,所以GLCM的大小为256x256,但是我们可以对灰度级别进行降维操作,比如可以每8个灰度值表示一个level,这样原来256x256大小的共生矩阵就可以改成256/8 * 256 /8 = 32x32的共生矩阵。所以最终影响灰度共生矩阵生成有三个关键参数:
角度 (支持0、45、90、135)
距离(大于等于1个像素单位)
灰度级别(最大GLCM=256 x 56)
具体示例:
假设原图像
对应的灰度值
对灰度等级进行压缩(256 -> 3)
可以知道,这个图像的灰度是3阶,也就是说,我们的GLCM,是3阶方阵(GLCM的阶数等于灰度的等级数)
δ:表示像素对的位置关系(两个像素相对位置关系,分为水平、垂直,+45,-45)
i、j:分别表示两个像素的灰度等级;
n(i, j):表示灰度等级i和j的像素对,在δ定义的位置关系下,出现的次数
比如n(0,0),δ定义为水平,(0,0)像素对水平排列在灰度图中出现的次数为“0”
比如n(0,1),δ定义为水平,(0,1)像素对水平排列在灰度图中出现的次数为“12”
如图:
即最后得到的GLCM 如下(注意 (2,0), (1, 2) 水平出现的次数也为12):