深度学习知识点【59】灰度共生矩阵(GLCM

灰度共生矩阵(GLCM,Gray-Level Co-occurrence Matrix)是一种用于纹理分析的统计方法,它可以捕捉图像中的空间结构和纹理信息。GLCM通过计算图像中各个灰度级对之间的出现频率来描述图像的纹理特征,这些特征包括能量(ASM)、对比度(Contrast)、熵(Entropy)、逆差矩(Inverse Difference Moment,IDM)和相关性(Correlation)等。

### GLCM特征

1. **能量(ASM)**:表示图像中像素灰度级对之间的概率的平方和,即像素对之间的均匀性程度。ASM越大,表示图像中的像素对越均匀,纹理越均匀。

2. **对比度(Contrast)**:反映图像中像素对的灰度级之间的差异程度。对比度越大,表示图像的纹理越粗糙,灰度级对之间的差异越大。

3. **熵(Entropy)**:用于描述图像的不确定性或信息量。熵越大,表示图像中的像素对越不规则,纹理越复杂。

4. **逆差矩(IDM)**:用于描述图像中灰度级对的一致性程度。逆差矩越大,表示图像中的灰度级对越一致,纹理越均匀。

5. **相关性(Correlation)**:描述了图像中像素对之间的线性依赖关系,与纹理的规则性和方向性有关。

### GLCM的应用

GLCM特征的计算公式能够全面反映图像的纹理特征,能够用于纹理分析、图像分类等应用中。例如,在遥感和地理信息系统领域,GLCM可以用于土壤分析、植被分析;在工业检测领域,可以用于产品质量控制和缺陷检测;在计算机视觉和图像处理领域,可以用于对象识别和图像分割。

### GLCM的计算

GLCM的计算过程包括以下几个步骤:

1. 读取灰度图像,并将其灰度级别降低以便于计算。
2. 从不同方向(如0度,45度,90度,135度)和步长(如d=1)生成对应的灰度共生矩阵。
3. 基于每个灰度共生矩阵,使用特定的公式提取上述五个统计特征。

### 特征归一化

在实际应用中,为了使得特征在不同图像之间具有可比性,特征归一化是一个重要的步骤。通常包括将GLCM的每个元素除以整个矩阵的元素总和,从而得到归一化的共生矩阵。这样处理后的矩阵便于进行统计分析,并用于后续的图像分析任务,如图像识别和分类。

综上所述,GLCM是一种强大的纹理分析工具,通过提取图像的纹理特征,可以广泛应用于多个领域和图像处理任务。
 

### GLCM 灰度共生矩阵代码实现 #### Python 实现灰度共生矩阵 (GLCM) 为了创建灰度共生矩阵(GLCM),通常会使用Python中的`skimage.feature.greycomatrix()`函数。此方法允许指定方向、距离以及其他参数来构建GLCM。 ```python from skimage import data, io from skimage.feature import greycomatrix, greycoprops import numpy as np import matplotlib.pyplot as plt # 加载测试图片并转换成灰度图 img = color.rgb2gray(data.camera()) # 定义距离向量d和角度θ distances = [1, 2, 3] angles = [0, np.pi/4, np.pi/2, 3*np.pi/4] # 计算GLCM,默认情况下,图像被量化到8个等级(即每个像素值会被映射到{0,...,7}) glcm = greycomatrix(img, distances=distances, angles=angles, levels=8, symmetric=True, normed=True)[^1] # 提取一些统计特征如对比度、同质性等 contrast = greycoprops(glcm, 'contrast') homogeneity = greycoprops(glcm, 'homogeneity') print(f'Contrast:\n {contrast}') print(f'Homogeneity:\n {homogeneity}') # 显示原始图像及其对应的GLCM可视化结果 plt.figure(figsize=(10, 5)) plt.subplot(121), plt.imshow(img, cmap='gray'), plt.title('Original Image') plt.axis('off') plt.subplot(122), plt.imshow(glcm[:, :, 1, 1], cmap='hot'), plt.title('GLCM at d=2, θ=π/4') plt.colorbar() plt.show() ``` 上述代码展示了如何利用Scikit-image库计算给定输入图像的灰度共生矩阵,并提取了一些常见的纹理特性,例如对比度和同质性。通过调整`greycomatrix()`函数内的参数设置,可以探索更多有关于不同间距和平移角下的GLCM属性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值