skimage下的灰度共生矩阵计算源码
时间: 2023-11-28 14:04:10 浏览: 32
下面是使用scikit-image库中的灰度共生矩阵计算函数`greycomatrix()`的源码示例:
```
import numpy as np
from skimage.feature import greycomatrix
# 生成一张灰度图像
image = np.array([[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 2, 2, 2],
[2, 2, 3, 3]], dtype=np.uint8)
# 计算水平方向上的灰度共生矩阵
glcm = greycomatrix(image, distances=[1], angles=[0], levels=4, symmetric=True, normed=True)
print(glcm)
```
在上面的示例中,我们首先生成了一张4x4的灰度图像,然后调用`greycomatrix()`函数计算它的水平方向上的灰度共生矩阵。`distances`参数指定了计算灰度共生矩阵时所考虑的像素间距离,这里我们只考虑相邻像素之间的距离,因此将其设为1。`angles`参数则指定了计算灰度共生矩阵时所考虑的像素间相对角度,这里我们只考虑水平方向上的像素,因此将其设为0。`levels`参数指定了图像中可能的灰度级数,这里我们的图像灰度级数为4,因此将其设为4。`symmetric`参数指定了灰度共生矩阵是否对称,这里我们将其设为True。`normed`参数则指定了灰度共生矩阵是否进行归一化,这里我们将其设为True。
运行上述代码后,我们可以得到如下输出:
```
[[[[0.1875 0. 0.25 0. ]
[0. 0. 0. 0. ]
[0.25 0. 0. 0. ]
[0. 0. 0. 0. ]]
[[0. 0. 0. 0. ]
[0.1875 0. 0. 0. ]
[0. 0. 0. 0. ]
[0. 0. 0. 0. ]]
[[0.25 0. 0. 0. ]
[0. 0. 0. 0. ]
[0. 0. 0. 0. ]
[0. 0. 0. 0. ]]
[[0. 0. 0. 0. ]
[0. 0. 0. 0. ]
[0. 0. 0. 0. ]
[0. 0. 0. 0. ]]]]
```
可以看到,输出结果是一个4维的数组,其中第1维表示距离(这里我们只考虑距离为1),第2维表示角度(这里我们只考虑水平方向),第3维和第4维表示灰度级之间的共生概率。例如,第1维第2维第3维第4维的值0.1875表示在图像中灰度级为0的像素与其右侧的灰度级为1的像素相邻时,它们的共生概率为0.1875。