目录
灰度共生矩阵(GLCM)
算法简介
灰度共生矩阵法(GLCM, Gray - level co - occurrence matrix),就是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度等综合信息,它是分析图像的局部模式和它们排列规则的基础。 (灰度共生矩阵理论的前辈Haralick等人用灰度共生矩阵提出了14中特征值)对于灰度共生矩阵的理解,需要明确几个概念:方向,偏移量和灰度共生矩阵的阶数。
方向:一般计算过程会分别选在几个不同的方向来进行,常规的是水平方向0°,垂直90°,以及45°和135°;
步距d:中心像元(在下面的例程中进行说明);
灰度共生矩阵的阶数:与灰度图像灰度值的阶数相同,即当灰度图像灰度值阶数为N时,灰度共生矩阵为N × N的矩阵;
算法实现过程:
step 1/6:灰度矩阵图
灰度矩阵图获取,计算公式简单。
step 2/6:灰度级量化
灰度级量化,由于一般计算的灰度级256,效率太低,量化成8或者16级,并且量化前先直方图均衡化提高对比度先。
step 3/6:计算前的参数选择
- 滑窗尺寸:一般取5*5、7*7。
- 步长d:一般为1,即中心像素与临近像素进行比较。
- 方向选择:一般取四个方向,然后做平均值,多了影响效率。
- 共生矩阵阶数:由量化阶数N决定,为N*N的矩阵
step 4/6:灰度共生矩阵计算
灰度共生矩阵计算,以例子来说明
设灰度被分为4阶(灰度阶从0–3);窗口大小为6 x 6,然后对整张图进行滑动,每次可以滑动原图 6 x 6 的范围,假设取了量化后的图的如下灰度矩阵-》
(1) 0°方向,步长为1,统计(1,2)共8个,以此类推
矩阵归一化:
(2) 45°方向,步长为1
矩阵归一化:
(3) 90°方向,步长为1
(4) 135°方向,步长为1
step 5/6:每个扫描窗口进行灰度共生矩阵特征值计算
——对每个扫描窗口进行灰度共生矩阵特征值计算,,得到4个值*窗的个数。
采用四个最常用的特征来提取图像的纹理特征:能量、对比度、相关度、熵。
a. 能量(角二阶距)
能量是灰度共生矩阵各元素的平方和,又被称角二阶距。它是图像纹理灰度变化均一的度量,反映了图像灰度分布均匀程度和纹理粗细程度。
b. 对比度
对比度是灰度共生矩阵主对角线附近的惯性矩,它体现矩阵的值如何分布,反映了图像的清晰度和纹理沟纹的深浅。
c. 相关度
相关度体现了空间灰度共生矩阵元素在行或列方向上的相似程度,反映了图像局部灰度相关性。
d. 熵
熵体现了图像纹理的随机性。若共生矩阵中所有值都相等,取得最大值;若共生矩阵中的值不均匀,则其值会变得很小。
step 6/6:所有特征值进行均值和方差计算,得到4个值
求出该灰度共生矩阵各个方向的特征值后,再对这些特征值进行均值和方差的计算,得到4个均值和4个方差,这样处理就消除了方向分量对纹理特征的影响。
代码实现过程
比较简单,明白了算法过程基本编程没问题,有现成github。
参考
琦小虾:https://blog.csdn.net/ajianyingxiaoqinghan/article/details/71552744
青雲-吾道乐途:https://blog.csdn.net/qq_37059483/article/details/78292869