paper 131:【图像算法】图像特征:GLCM【转载】

时间:2022-09-18 01:39:33

转载地址:http://www.cnblogs.com/skyseraph/archive/2011/08/27/2155776.html

一 原理

1 概念:GLCM,即灰度共生矩阵,GLCM是一个L*L方阵,L为源图像的灰度级

2 含义:描述的是具有某种空间位置关系的两个像素的联合分布,可看成两个像素灰度对的联合直方图,是一种二阶统计

3 常用的空间位置关系:有四种,垂直、水平、正负45°

4 常用的GLCM特征特征

(1)能量:  是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。
      如果共生矩阵的所有值均相等,则ASM值小;相反,如果其中一些值大而其它值小,则ASM值大。
      当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均一和规则变化的纹理模式。
(2)对比度:反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;
      反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。
      灰度公生矩阵中远离对角线的元素值越大,CON越大。
(3)相关:  它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。
      当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,
      则水平方向矩阵的COR大于其余矩阵的COR值。
(4):  是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、
      空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。
(5)逆差距:反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。

5 原理理解

假设衣服图像的纹理矩阵P如下:

P = [ 0 1 2 0 1 2 
   1 2 0 1 2 0
   2 0 1 2 0 1
   0 1 2 0 1 2
   1 2 0 1 2 0
   2 0 1 2 0 1
 ]

①相距为1(第一个参数),位置方向为0°第二个参数)的GLCM矩阵如下:

[ 0 10 10

10 0 10

10 10 0

]

//解析:因为P中灰度级为3,故GLCM为3*3方阵

②相距为1(第一个参数),位置方向为正负45°第二个参数)的GLCM矩阵如下:

[ 16  0  0
    0  16  0 
    0   0  18
]

-------------------------------------------------------------------------------------------------------------------------------

二 结果

 图像(lenna):

另附:关于lenna,风靡图像界这张图像,源原轶事:http://www.cs.cmu.edu/~chuck/lennapg/ ^_^

paper 131:【图像算法】图像特征:GLCM【转载】

单个 GLCM以及4个方向的均值、方差GLCM特征:

paper 131:【图像算法】图像特征:GLCM【转载】

-------------------------------------------------------------------------------------------------------------------------------

三 源码

类头文件


类源文件-1:初始化和资源释放

类源文件-2:计算纹理特征

类源文件-3:计算共生矩阵

类源文件-4:计算GLCM特征

类源文件-5:计算GLCM特征均值和方差

说明:

参考了 《VisualC++数字图像模式识别技术详解》、《数字图像处理与机器视觉-VisualC++与Matlab实现》等书,此类为本文作者原创,可直接调用,转载/引用请注明出处。

-------------------------------------------------------------------------------------------------------------------------------

四 参考资料

GLCM Texture Tutorial
Gray-level Co-occurrence Matrix(灰度共生矩阵) _ 丕子

灰度共生矩阵 - tyut - 博客园

使用OpenCv的cvGLCM报错

灰度共发矩阵专题_百度文库

灰度共生矩阵VC++实现_百度文库

图像的灰度共生矩阵_百度文库

灰度共生矩阵_百度文库

提取共生矩阵特征 - wqvbjhc的专栏 - CSDN博客

基于灰度共生矩阵的纹理特征提取 - docin.com豆丁网

基于灰度共生矩阵的图像分割方法研究_百度文库

一个使用GLCM的例子.(修改了CvTexture的bug)

《VisualC++数字图像模式识别技术详解》

《数字图像处理与机器视觉-VisualC++与Matlab实现》

------------------------------------------------------------------------------------------------------------------------------

Author:         SKySeraph

Email/GTalk: zgzhaobo@gmail.com    QQ:452728574

From:         http://www.cnblogs.com/skyseraph/