机器视觉_图像算法(三)——灰度共生矩阵(GLCM)

目录

灰度共生矩阵(GLCM)

算法简介

算法实现过程:

step 1/6:灰度矩阵图

step 2/6:灰度级量化

step 3/6:计算前的参数选择

step 4/6:灰度共生矩阵计算

step 5/6:每个扫描窗口进行灰度共生矩阵特征值计算

step 6/6:所有特征值进行均值和方差计算,得到4个值

代码实现过程

参考


灰度共生矩阵(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个,以此类推

P_{A}(d=1, \theta =0^o)=\begin{vmatrix} 0 & 8 & 0 & 7 \\ 8 & 0 & 8 & 0 \\ 0 & 8 & 0 & 7 \\ 7 & 0 & 7 & 0 \end{vmatrix}

矩阵归一化:

P_{A}(d=1, \theta =0^o)=\begin{vmatrix} 0 & 8/60 & 0 & 7/60 \\ 8/60 & 0 & 8/60 & 0 \\ 0 & 8/60 & 0 & 7/60 \\ 7/60 & 0 & 7/60 & 0 \end{vmatrix}

(2) 45°方向,步长为1

P_{A}(d=1, \theta =45^o)=\begin{vmatrix} 12 & 0 & 0 & 0 \\ 0 & 14 & 0 & 0 \\ 0 & 0 & 12 & 0 \\ 0 & 0 & 0 & 12 \end{vmatrix}

矩阵归一化:

P(d=1, \theta =45^o)=\begin{vmatrix} 12/50 & 0 & 0 & 0 \\ 0 & 14/50 & 0 & 0 \\ 0 & 0 & 12/50 & 0 \\ 0 & 0 & 0 & 12/50 \end{vmatrix}

(3) 90°方向,步长为1

(4) 135°方向,步长为1

step 5/6:每个扫描窗口进行灰度共生矩阵特征值计算

——对每个扫描窗口进行灰度共生矩阵特征值计算,,得到4个值*窗的个数。

采用四个最常用的特征来提取图像的纹理特征:能量、对比度、相关度、熵。

a. 能量(角二阶距)
ASM = \sum_{i} \sum_{j}P(i, j)^2
        能量是灰度共生矩阵各元素的平方和,又被称角二阶距。它是图像纹理灰度变化均一的度量,反映了图像灰度分布均匀程度和纹理粗细程度。

b. 对比度
CON = \sum_{i} \sum_{j} (i-j)^2 P(i,j)
        对比度是灰度共生矩阵主对角线附近的惯性矩,它体现矩阵的值如何分布,反映了图像的清晰度和纹理沟纹的深浅。

c. 相关度
CORRLN = [\sum_{i} \sum_{j}((ij)P(i,j)) - \mu_{x} \mu_{y}]/ \sigma_{x} \sigma_{y}
        相关度体现了空间灰度共生矩阵元素在行或列方向上的相似程度,反映了图像局部灰度相关性。

d. 熵
ENT = - \sum_{i} \sum_{j} P(i,j) \log P(i,j)
        熵体现了图像纹理的随机性。若共生矩阵中所有值都相等,取得最大值;若共生矩阵中的值不均匀,则其值会变得很小。

step 6/6:所有特征值进行均值和方差计算,得到4个值

        求出该灰度共生矩阵各个方向的特征值后,再对这些特征值进行均值和方差的计算,得到4个均值和4个方差,这样处理就消除了方向分量对纹理特征的影响。

代码实现过程

比较简单,明白了算法过程基本编程没问题,有现成github

参考

琦小虾https://blog.csdn.net/ajianyingxiaoqinghan/article/details/71552744

青雲-吾道乐途:https://blog.csdn.net/qq_37059483/article/details/78292869

  • 6
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
灰度共生矩阵GLCM)是一种常用的图像纹理分析方法,可以用来描述图像中像素的空间关系。下面是一个简单的 Python 代码示例,用于计算图像GLCM: ```python import numpy as np from skimage.feature import greycomatrix, greycoprops from skimage import io, color # 读取图像 img = io.imread('image.png') # 转换为灰度图像 img_gray = color.rgb2gray(img) # 计算灰度共生矩阵 glcm = greycomatrix(img_gray, distances=[1], angles=[0, np.pi/4, np.pi/2, 3*np.pi/4], levels=256, symmetric=True, normed=True) # 计算灰度共生矩阵的特征值 contrast = greycoprops(glcm, 'contrast') dissimilarity = greycoprops(glcm, 'dissimilarity') homogeneity = greycoprops(glcm, 'homogeneity') energy = greycoprops(glcm, 'energy') correlation = greycoprops(glcm, 'correlation') ASM = greycoprops(glcm, 'ASM') print('Contrast:', contrast) print('Dissimilarity:', dissimilarity) print('Homogeneity:', homogeneity) print('Energy:', energy) print('Correlation:', correlation) print('ASM:', ASM) ``` 在上述代码中,我们首先使用 skimage 库中的 `rgb2gray` 函数将彩色图像转换为灰度图像,然后使用 `greycomatrix` 函数计算灰度共生矩阵。其中,`distances` 参数指定用于计算灰度共生矩阵的像素间距离,`angles` 参数指定用于计算灰度共生矩阵的像素间方向,`levels` 参数指定图像的灰度级数,`symmetric` 参数指定是否将灰度共生矩阵对称化,`normed` 参数指定是否对灰度共生矩阵进行归一化。 然后,我们使用 `greycoprops` 函数计算灰度共生矩阵的特征值,包括对比度(`contrast`)、不相似度(`dissimilarity`)、同质性(`homogeneity`)、能量(`energy`)、相关性(`correlation`)和 ASM(`ASM`)。最后输出这些特征值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值