纹理特征提取方法——灰度共生矩阵(GLCM )

灰度共生矩阵(Grey Level Co-occurrence Matrix)也叫做空间灰度级依赖矩阵(SGLDM),它是一种基于统计的纹理提取的方法。

1.灰度共生矩阵的基本原理

灰度共生矩阵中的元素,表示的是具有某种空间位置关系的两个像素灰度的联合分布。

1.1 定义

考虑二阶统计量,研究有空间关系的像素对:

表示一对强度值为(i,j)的像素在距离为d的方向θ上出现的次数。它构成了灰度共生矩阵的元素。

1.2 空间关系定义

假设一对像素的空间位置关系表示为δ=(a,b),(a,b)的取值不同,灰度共生矩阵中的值不同。

  • a和b的取值要根据纹理周期分布的特征来选择,对于较细的纹理,选取(1,0),(1,1),(2,0)等这样的值是有必要的。
  • a,b取值较小对应于变化缓慢的纹理图像,其灰度共生矩阵对角线上的数值较大。
  • 纹理的变化越快,则对角线上的数值越小,而对角线两侧的值增大。

GLCM将拍摄的图像(用矩阵表示)。

定义角度([“0”,“45”,“90”,“135”]) 和整数距离d([1, 2, 8, 16]__‘1’最优)。

GLCM的轴由图像中存在的灰度级定义。

扫描图像的每个像素并将其存储为“参考像素”。然后将参考像素与距离d的像素进行比较,该距离为角度θ(其中“0”度是右边的像素,“90”是上面的像素)。

远离参考像素,称为相邻像素。每次找到参考值和邻居值对时,GLCM的相应行和列递增1。

(a,b)=(1,0),像素对是水平的,即0度扫描;

(a,b)=(0,1),像素对是垂直的,即90度扫描;

(a,b)=(1,1),像素对是右对角线的,即45度扫描;

(a,b)=(-1,1),像素对是左对角线,即135度扫描。

1.3 GLCM生成流程

灰度共生矩阵的生成流程:

  1. 在图像中任意一点(x,y)及偏离它的一点(x+a,y+b)构成点对。设该点对的灰度值为(f1,f2),假设图像的最大灰度级为L,则f1与f2的组合共有L*L种。
  2. 对于整张图像,统计每一种(f1,f2)值出现的次数,然后排列成一个方阵。
  3. 再对(f1,f2)出现的总次数进行归一化得到概率P(f1,f2),由此产生的矩阵为灰度共生矩阵。

1.4 实际例子

假如现在有一张纹理图像的灰度值分布如下:

图 b

图a为原图像,最大灰度级为16。为表示方便,这里将灰度级数减小为4级,图a变为图b的形式。这样(f1,f2)取值范围便为[0,3]。取不同的位置关系,将(f1,f2)各种组合出现的次数排列起来,就可得到图c-d所示的灰度共生矩阵

图c表示图b中(x,y)与偏离它的(x+1,y+0)构成点对时,(f1,f2)=(0,1)取值的情况共10种(图b中填充部分)。

同理,图d表示图b中(x,y)分别于点(x+1,y+1)构成的点对(f1,f2)出现的情况。

可以看到,灰度共生矩阵实际上是两个像素点的联合直方图,对于图像中细而规则的纹理,成对像素点的二维直方图倾向于均匀分布;对于粗而规则的纹理,则倾向于最对角分布。