定义
灰度共生矩阵一开始是为了解决图像处理中的问题的。具体定义如下:用图片上两个位置的像素的联合概率分布进行定义,不仅能反应亮度的分布特征,也反应具有同样亮度或者接近亮度像素之间的位置分布特性,是有关图像亮度变化的二阶统计特征。
衍生出这一理论的原因是:在图像中,纹理是由灰度在空间位置上反复出现而形成的,因而在图像空间中,某个距离的两像素之间会存在一定的灰度关系,即图像中灰度的空间相关特性
灰度直方图是对图像上单个像素具有某个灰度进行统计的结果,而灰度共生矩阵是对图像上保持某距离的两像素分别具有某灰度的状况进行统计得到的。
通俗的说,灰度共生矩阵是一种数字的组合,专门用于计算各种统计量:图像局部区域的自相关函数、灰度共生矩阵、灰度游程以及灰度分布的各种统计量。Haralick曾提出了14种基于灰度共生矩阵计算出来的统计量:能量、熵、对比度、均匀性、相关性、方差、和平均、和方差、和熵、差方差、差平均、差熵、相关信息测度以及最大相关系数。
数学定义
选取图像中 N × N N\times N N×N中任意一点 ( x , y ) (x,y) (x,y)及偏离它的另一点 ( x + a , y + b ) (x+a,y+b) (x+a,y+b),这两点的灰度值假设为 ( g 1 , g 2 ) (g_1, g_2) (g1,g2)。令点 ( x , y ) (x,y) (x,y)在整个画面上移动,则会得到各种 ( g 1 , g 2 ) (g_1,g_2) (g1,g2)的值,设灰度值的级数为 k k k,则 ( g 1 , g 2 ) (g_1,g_2) (g1,g2)出现的总次数将其归一化为出现概率 P ( g 1 , g 2 ) P(g_1, g_2) P(g1,g2),这样的方阵称为灰度共生矩阵。
灰度共生矩阵长啥样
右图是灰度共生矩阵,GLCM中坐标为
(
1
,
1
)
(1,1)
(1,1)位置的值为1,说明在左图中,相邻灰度值为1的值出现了一次;同样的,坐标为
(
1
,
2
)
(1,2)
(1,2)的值为2,说明作图中,相邻灰度值为
(
1
,
2
)
(1,2)
(1,2)的值出现了两次。
整体的构建流程如下:取图像中的任意一点 ( x , y ) (x,y) (x,y)以及偏离它的另一点 ( x + a , y + b ) (x+a, y+b) (x+a,y+b),设这俩点的灰度值可以表示为 ( g 1 , g 2 ) (g_1, g_2) (g1,g2),,令点 ( x , y ) (x,y) (x,y)在整个图像上移动,会得到各种的 ( g 1 , g 2 ) (g_1, g_2) (g1,g2)值,设灰度的级数为 k k k,则 ( g 1 , g 2 ) (g_1,g_2) (g1,g2)的组合共有 k 2 k^2 k2,对于整个画面,统计出每一种 ( g 1 , g 2 ) (g_1,g_2) (g1,g2)值出现的次数,然后排列成一个方阵,在用 ( g 1 , g 2 ) (g_1,g_2) (g1,g2) 出现的总次数将它们归一化为出现的概率 P ( g 1 , g 2 ) P(g_1,g_2) P(g1,g2),这样的方阵称为灰度共生矩阵。
距离差分值 δ = ( a , b ) \delta =(a,b) δ=(a,b)取不同的数值组合,可以得到不同情况下的联合概率矩阵。 ( a , b ) (a,b) (a,b)取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取 ( 1 , 0 ) (1,0) (1,0)、 ( 1 , 1 ) (1,1) (1,1)、 ( 2 , 0 ) (2,0) (2,0)等小的差分值。
- 当 a = 1 , b = 0 a=1,b=0 a=1,b=0时,像素对是水平的,即0度扫描;
- 当 a = 0 , b = 1 a=0, b=1 a=0,b=1 时,像素对是垂直的,即90度扫描;
- 当 a = 1 , b = 1 a=1,b=1 a=1,b=1时,像素对是右对角线的,即45度扫描;
- 当 a = − 1 , b = − 1 a=-1, b=-1 a=−1,b=−1时,像素对是左对角线,即135度扫描。
这样,两个象素灰度级同时发生的概率,就将
(
x
,
y
)
(x,y)
(x,y)的空间坐标转化为“灰度对”
(
g
1
,
g
2
)
(g_1,g_2)
(g1,g2)的描述,形成了灰度共生矩阵。
一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。
数学表达
设
f
(
x
,
y
)
f(x,y)
f(x,y)为一幅二维数字图象,其大小为
M
×
N
M\times N
M×N,灰度级别为
N
N
N个(
N
N
N为灰度级,就是一幅图中包含的不同灰度或者颜色的个数),则满足一定空间关系的灰度共生矩阵为
P
(
i
,
j
)
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
∈
M
×
N
|
f
(
x
1
,
y
1
)
=
i
,
f
(
x
2
,
y
2
)
=
j
}
P(i,j)={(x_1,y_1),(x_2,y_2)\in M\times N|f(x_1,y_1)=i,f(x_2,y_2)=j}
P(i,j)={(x1,y1),(x2,y2)∈M×N|f(x1,y1)=i,f(x2,y2)=j}
其中 ( x ) (x) (x)表示集合 x x x中的元素个数,显然 P P P为 N × N N \times N N×N的矩阵,若 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)与 ( x 2 , y 2 ) (x_2,y_2) (x2,y2)间距离为 d d d,两者与坐标横轴的夹角为 θ \theta θ,则可以得到各种间距及角度的灰度共生矩阵 P ( i , j , d , θ ) P(i,j,d,\theta) P(i,j,d,θ)。
一个不成熟的例子
2.5相关性
用来度量图像的灰度级在行或列方向上的相似程度,因此值得大小反应了局部灰度相关性,值越大,相关性也越大。
Reference
利用python的skimage计算灰度共生矩阵
灰度共生矩阵(GLCM)附Python代码
灰度共生矩阵(附python代码)
灰度共生矩阵原理
灰度共生矩阵的生成和理解
灰度共生矩阵的理解
图像特征提取——灰度共生矩阵(GLCM)
图像特征提取——灰度共生矩阵(GLCM)
灰度共生矩阵(超简单理解)