关于灰度共生矩阵对纹理图像进行分割的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于灰度共生矩阵对纹理图像进行分割的问题相关的知识,希望对你有一定的参考价值。

利用matlab对图像进行纹理分割 用灰度共生矩阵对图像进行纹理特征提取,得到用于描述纹理的特征值,比如有熵、角二阶矩(能量)、相关度、对比度等,提取4个方向(0、45、90、135)的4个4维矩阵,用这四个矩阵怎么对图像进行纹理分割?我指的是用这个几个特征值分割而不是用FCM、K-means这些聚类法.......
还是先给图像分块,在每个块上用窗口分割??
请纹理分割的大神指教 ,谢谢

基于灰度共生矩阵的图像分割方法研究
时间:2009-12-16 11:13:13 来源:电子科技 作者:宁顺刚,白万民,喻 钧 西安工业大学计算机科学与工
程学院
所谓图像分割就是指把图像分成各具特性的区域,并提取出感兴趣目标的技术和过程。它是数字图像处理中的关键技术之一,是进一步进行图像识别、分析和理解的基础。目前图像分割方面现有的算法非常多,将它们进行分类的方法也提出了不少。一般分为3类:(1)阈值分割;(2)边缘检测;(3)区域提取。但还没有一种方法能普遍适用于各种图像。因此,对于图像分割的研究还在不断深人之中,也是目前图像处理中研究的热点之一。随着科技的发展进步,图像处理在军事中的运用也越来越广泛,这主要集中在迷彩设计这方面。而现在军事上的伪装迷彩是现代高技术战争中隐藏武器装备、保存自我的重要手段,也是消灭敌人的需要。因此对于迷彩的设计研究也一直都是各国的热门话题。文中主要以某山地航拍图为研究对像,对其进行背景分析然后再实现图像分割,为后期迷彩设计做准备。由于该山地背景纹理特征明显,故利用纹理分析对其进行背景分析,而灰度共生矩阵是纹理分析方法中最常用的一种方法。文中采用灰度共生矩阵方法对该图像进行分割研究。

1 灰度共生矩阵
灰度共生矩阵(Gray Level Co-occurrence Ma-trix,GLCM)是图像纹理分析方法中的一种,它反映不同像素相对位置的空间信息,在一定程度上反映了纹理图像中各灰度级在空间上的分布特性,是纹理分析领域中最经常采用的特征之一。灰度共生矩阵是图像灰度变化的二阶统计度量,也是描述纹理结构性质特征的基本函数,它统计了两个像素点位置的联合概率分布。设S为目标区域R中具有特定空间联系的像素对的集合,则共生矩阵P可定义为

式(1)等号右边的分子是具有某种空间关系、灰度值分别为i,j的像素对的个数,分母为像素对的总和个数(#代表数量),这样得到的P是归一化的。
对于一幅图像Gf(i,j),大小N×N,包含像素(动态范围为G)的灰度级为0,1,…,G-1,它的灰度共生矩阵是一个二维矩阵C(i,J),每个矩阵元素表示在某一距离d和角度θ强度i和j联合出现的概率。因此,根据不同的d和θ值,这里可能存在多个共生矩阵。但在实际应用中,往往适当的选取d,而θ一般取O°,45°,90°,135,如图1所示。
参考技术A 对于每个像素点,把你得到的这些特征串成一个向量,然后把这些向量作为fcm的输入,对每个像素进行分类。如果定义两个类,一个是分割对象目标,另一个是背景,那么分类的结果就是图像分割的结果了。

OpenCV 例程200篇231. 特征描述之灰度共生矩阵(GLCM)

『youcans 的 OpenCV 例程200篇 - 总目录』


【youcans 的 OpenCV 例程200篇】231. 特征描述之灰度共生矩阵(GLCM)


4.2.4 灰度共生矩阵(GLCM)

灰度共生矩阵(Gray level co-occurrence matrix,GLCM)是特征检测与分析的重要方法,在纹理分析、特征分类、图像质量评价中应用广泛 。

灰度共生矩阵是一种典型的统计方法,描述空间上具有某种分布规律的灰度值组合出现的概率。

图像的像素具有不同的灰度级,灰度共生矩阵表示不同灰度组合同时出现的频率。简单地说,灰度共生矩阵反映灰度图像中某种形状的像素对在整个图像中出现的次数

灰度共生矩阵的定义是,从灰度为 i i i 的像素点出发,距离 ( a , b ) (a,b) (a,b) 的另一像素点 ( x + a , y + b ) (x+a,y+b) (x+a,y+b) 的灰度为 j j j 的概率。所有的估计值表示为矩阵矩式,称为灰度共生矩阵。

灰度共生矩阵在点 (x,y) 处的值,表示了特定灰度值组合在图像中出现的频次:
P ( i , j ∣ a , b , θ ) = ( x , y ) ∣ f ( x , y ) = i , f ( x + a , y + b ) = j , x , y = 0 , 1... L − 1 P(i,j|a,b,\\theta) = \\ (x,y)|f(x,y)=i,f(x+a,y+b)=j \\, \\quad x,y =0,1...L-1 P(i,ja,b,θ)=(x,y)f(x,y)=i,f(x+a,y+b)=j,x,y=0,1...L1
式中:

a , b a, b a,b 为距离差分值,也称相邻间隔、偏移量,要根据纹理周期分布的特性来选择,无特性参数时取 1(像素);

θ \\theta θ 为扫描方向,通常选择 0 o 、 4 5 o 、 9 0 o 、 13 5 o 0^o、45^o、90^o、135^o 0o45o90o135o ,对应以水平、垂直和左右对角线方向扫描像素对组合;

i , j = 0 , . . . L − 1 i,j=0,...L-1 i,j=0,...L1 表示像素的灰度级。灰度级 L=256 时即为灰度值,也可以取其它灰度级如 L=8,16。共生矩阵有方向和步长的组合,是一个稀疏矩阵,灰度级划分常常减少到8级。显然,灰度共生矩阵的尺寸为 L*L,而与图像尺寸无关。

例如,取 a = 1 , b = 1 , θ = 0 o a=1, b=1, \\theta=0^o a=1,b=1,θ=0o 时, P ( 1 , 1 ) P(1,1) P(1,1) 是水平相邻像素对的灰度级为 (1,1) 的组合数量, P ( 2 , 8 ) P(2,8) P(2,8) 是水平相邻像素对的灰度级为 (2,8) 的组合数量, P ( i , j ) P(i,j) P(i,j) 是水平相邻像素对的灰度级为 (i,j) 的组合数量。

也就是说,灰度共生矩阵中点 (i,j) 的值,就是灰度值为 i,j 的联合概率密度。因此,灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,是分析图象的局部模式和它们排列规则的基础。

粗纹理的区域,像素对趋于具有相同的灰度,灰度共生矩阵对角线上的数值较大;细纹理的区域,对角线上的数值相对较小,对角线两侧的值相对较大。

灰度共生矩阵的数据量很大,一般不直接用它来描述纹理特征,而是构建一些统计量作为纹理分类特征。例如,能量、熵、对比度、均匀性、相关性、方差等。

(1)能量(Energy), 是灰度共生矩阵元素值的平方和,反映图像灰度分布均匀程度和纹理粗细。ASM值大表明一种较均一和规则变化的纹理模式。
E n e r g y = ∑ i , j = 0 N − 1 ( P i j ) 2 Energy = \\sum ^N-1 _i,j=0 (P_ij)^2 Energy=i,j=0N1(Pij)2

(2)熵(Entropy),是图像所具有的信息量的度量,反映图像中纹理的非均匀程度或复杂程度。共生矩阵中的元素分布越分散,随机性越大,熵值就越大。
E n t r o p y = ∑ i , j = 0 N − 1 − l n ( P i j ) P i j Entropy = \\sum ^N-1 _i,j=0 -ln(P_ij)P_ij Entropy=i,j=0N1ln(Pij)Pij

(3)对比度(Contrast),度量灰度共生矩阵的局部变化,反映了图像的清晰度和纹理沟纹深浅的程度。纹理的沟纹越深,对比度越大,视觉效果越清晰。
C o n t r a s t = ∑ i , j = 0 N − 1 P j j ( i − j ) 2 Contrast = \\sum ^N-1 _i,j=0 P_jj(i-j)^2 Contrast=i,j=0N1Pjj(ij)2

(4)相关性(Correlation),度量灰度共生矩阵在行或列方向上的相似程度, 反映了图像中局部灰度相关性 。如果图像具有水平方向的纹理,则水平方向的相关性就会显著地大于其它方向的相关性。
C o r r e l a t i o n = ∑ i , j = 0 M − 1 P ( i , j ) ( i − μ ) ( j − μ ) σ 2 Correlation = \\sum_i,j=0^M-1 P(i,j)\\frac(i-\\mu)(j-\\mu)\\sigma ^2 Correlation=i,j=0M1P(i,j)σ2(iμ)(jμ)

(5)反差分矩阵(Inverse Differential Moment, IDM),反映了纹理的清晰程度和规则程度。

(6)同质性(Homogeneity),反映了图像纹理的同质性,度量图像纹理局部变化的程度。


例程 14.11:特征描述之灰度共生矩阵(skimage)

skimage 的特征提取库 skimage.feature 提供了函数 greycomatrix 和 greycoprops,可以 计算灰度共生矩阵并提取特征统计量 。

函数说明:

skimage.feature.graycomatrix(image, distances, angles, levels=256, symmetric=False, normed=False)
skimage.feature.graycoprops(P[, prop])

参数说明:

  • image:整型单通道图像,推荐使用 uint8 灰度图像
  • distances:像素对的距离偏移量的列表,计算列表中每个偏移量的 GLCM
  • angles:像素对扫描角度(弧度)列表,计算列表中每个角度值的 GLCM
  • levels:灰度级,默认值为 256
  • symmetric:对称性选项,默认值 False 表示将像素对 (i,j) 与 (j,i) 分别计算,True 表示忽略像素对顺序,将 (i,j) 与 (j,i) 视为相同
  • normed:归一化选项,默认值 False,True 表示对矩阵归一化。
  • prop:元组,灰度共生矩阵 P 的特征统计量, 包括:对比度 ‘contrast’、相异性 ‘dissimilarity’、同质性 ‘homogeneity’、能量 ‘energy’、相关性 ‘correlation’、能量的平方 ‘ASM’
  • 返回值是 4维数组,即不同偏移量、不同角度的 GLCM。 P [ i , j , d , θ ] P[i,j,d,\\theta] P[i,j,d,θ] 是灰度 j 在偏移量 d、角度 θ \\theta θ 处出现灰度 i 的次数。

    # 14.11 特征描述之灰度共生矩阵 (skimage)
    from skimage.feature import greycomatrix, greycoprops

    img = cv2.imread("../images/fabric1.png", flags=1)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 灰度图像
    height, width = gray.shape
    table16 = np.array([(i//16) for i in range(256)]).astype("uint8")  # 16 levels
    gray16 = cv2.LUT(gray, table16)  # 灰度级压缩为 [0,15]

    # 计算灰度共生矩阵 GLCM
    dist = [1, 4]  # 计算 2 个距离偏移量 [1, 2]
    degree = [0, np.pi/4, np.pi/2, np.pi*3/4]  # 计算 4 个方向
    glcm = greycomatrix(gray16, dist, degree, levels=16)  # 灰度级 L=16
    print(glcm.shape)  # (16,16,2,4)

    # 由灰度共生矩阵 GLCM 计算特征统计量
    for prop in ['contrast', 'dissimilarity','homogeneity', 'energy', 'correlation', 'ASM']:
        feature= greycoprops(glcm, prop).round(4)  # (2,4)
        print(": ".format(prop, feature))

    plt.figure(figsize=(9, 6))
    plt.suptitle("GLCM by skimage, youcans")
    for i in range(len(dist)):
        for j in range(len(degree)):
            plt.subplot(2,4,i*4+j+1), plt.axis('off')
            plt.title(r"d=,$\\theta$=:.2f".format(dist[i], degree[j]))
            plt.imshow(glcm[:,:,i,j], 'gray')
    plt.tight_layout()
    plt.show()

运行结果:

(16, 16, 2, 4)
contrast: [[ 4.5689 3.8755 1.7764 7.0276], [12.2668 12.6184 8.0537 13.614 ]]
dissimilarity: [[1.3346 1.3228 0.8727 1.7466], [2.3169 2.4697 1.9752 2.5845]]
homogeneity: [[0.5843 0.5477 0.6474 0.5072], [0.4539 0.4051 0.4422 0.3948]]
energy: [[0.1262 0.1186 0.1388 0.1103], [0.1003 0.0936 0.0997 0.0907]]
correlation: [[0.8558 0.8778 0.9439 0.7783], [0.6133 0.6031 0.7465 0.5717]]
ASM: [[0.0159 0.0141 0.0193 0.0122], [0.0101 0.0088 0.0099 0.0082]]



【本节完】

版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125693533)
Copyright 2022 youcans, XUPT
Crated:2022-7-9

227. 特征描述之 LBP 纹理特征算子
229. 特征描述之 LBP 算子比较(skimage)
231. 特征描述之 灰度共生矩阵(GLCM)

以上是关于关于灰度共生矩阵对纹理图像进行分割的问题的主要内容,如果未能解决你的问题,请参考以下文章

路面分类基于matlab灰度共生矩阵图形纹理检测+SVM路面状况分类含Matlab源码 1519期

数字图像处理 灰度共生矩阵特征分析法

瑕疵检测基于灰度共生矩阵实现痕迹检测matlab源码GUI

灰度共生矩阵的纹理描述子

OpenCV 例程200篇231. 特征描述之灰度共生矩阵(GLCM)

OpenCV 例程200篇231. 特征描述之灰度共生矩阵(GLCM)