python 用灰度共生矩阵提取图像特征
时间: 2024-02-02 07:03:33 浏览: 147
灰度共生矩阵(Gray-level co-occurrence matrix,GLCM)是一种用于描述图像纹理特征的方法。它通过统计图像中灰度级相邻像素出现次数的分布情况,来描述图像的纹理信息。
在 Python 中,我们可以使用 scikit-image 库来计算灰度共生矩阵。以下是一个简单的例子:
```python
import numpy as np
from skimage.feature import greycomatrix, greycoprops
from skimage import data
# 读取图像
image = data.coins()
# 计算灰度共生矩阵
glcm = greycomatrix(image, [1], [0, np.pi/4, np.pi/2, 3*np.pi/4], levels=256)
# 计算灰度共生矩阵的统计特征
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)
```
在上面的例子中,我们首先读取了一张图像,然后使用 `greycomatrix()` 函数计算了灰度共生矩阵。其中,`[1]` 表示灰度共生矩阵的距离为 1,`[0, np.pi/4, np.pi/2, 3*np.pi/4]` 表示灰度共生矩阵的方向,这里分别为 0 度、45 度、90 度和 135 度。`levels=256` 表示图像像素的灰度级别数。
接着,我们使用 `greycoprops()` 函数计算了灰度共生矩阵的一些统计特征,包括对比度(Contrast)、不相似度(Dissimilarity)、同质性(Homogeneity)、能量(Energy)、相关性(Correlation)和 ASM(Angular Second Moment)。最后,我们将这些特征打印出来。
需要注意的是,灰度共生矩阵的计算结果是一个 4 维数组,其中第一维是距离,第二维是方向,第三维和第四维是灰度级别。而 `greycoprops()` 函数的第二个参数则表示要计算哪个特征值,比如 `'contrast'` 表示对比度。
阅读全文