灰度共生矩阵GLCM主要用来描述图像的纹理特征
文章《灰度共生矩阵GLCM分析》提到,图像纹理分析主要有2种
- 统计纹理分析
寻找刻画纹理的数字特征,一般方法有自相关函数、GLCM、灰度游程等 - 结构纹理分析
研究组成纹理的基元(单个像素或像素集合)和他们的排列规则,常用树文法
GLCM概念
参考文章《图像特征提取——灰度共生矩阵(GLCM)》
像素灰度在空间位置上的反复出现形成图像纹理,GLCM描述具有某种空间位置关系的两个像素灰度的联合分布
举个简单例子来说明:
假设图像灰度为{0,1,2},某张图像灰度如图1所示
图1. 尺寸6*6,灰度级为3的图像
现在仅考虑水平方向相邻像素的关系,得GLCM
Pδ=⎡⎣⎢010101001010100⎤⎦⎥,δ=(±1,0)
其中 Pδ(i,j) 表示原图中水平方向相邻两个像素值为 i 和
比如 Pδ(1,2)=10 表示逐行扫描,相邻像素模式对为 1,2 的一共出现了10次
一般意义上,GLCM会考虑不同方向
θ
(0,45,90,135)和间距
d
因此上面的
Pδ(1,2)=10
等价为
P(1,2|0,1)=102∗5∗6=16
GLCM特征
反差/对比度
反映了图像的清晰度和纹理的深浅,纹理越深,反差越大
Con=∑i∑j(i−j)2P(i,j)
能量
反映了图像灰度分布均匀程度和纹理粗细度,能量值大表明当前纹理是规则变化的
Asm=∑i∑jP(i,j)2
熵
是图像包含信息量的随机性度量,纹理越复杂熵越大
Ent=−∑i∑jP(i,j)logP(i,j)
相关性/同质性
反映了图像局部灰度相关性
IDE=∑i∑jP(i,j)1+(i−j)2
GLCM计算
Halcon:cooc_feature_image
OpenCV:cvCreateGLCM,但貌似会有内存泄漏的问题