当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python skimage.feature.graycomatrix用法及代码示例


用法:

skimage.feature.graycomatrix(image, distances, angles, levels=None, symmetric=False, normed=False)

计算灰度共生矩阵。

灰度共生矩阵是图像上给定偏移量处co-occurring 灰度值的直方图。

参数

imagearray_like

整数类型的输入图像。仅支持正值图像。如果 type 不是 uint8,则需要设置参数级别。

distancesarray_like

像素对距离偏移列表。

anglesarray_like

以弧度为单位的像素对角度列表。

levelsint 可选

输入图像应包含 [0, levels-1] 中的整数,其中级别表示计数的灰度级数(对于 8 位图像,通常为 256)。此参数对于 16 位或更高位的图像是必需的,通常是图像的最大值。由于输出矩阵至少为 x 个级别,因此最好使用输入图像的分箱而不是较大的级别值。

symmetric布尔型,可选

如果为 True,则输出矩阵 P[:,:, d, theta] 是对称的。这是通过忽略值对的顺序来完成的,因此当遇到给定偏移量的 (i, j) 时, (i, j) 和 (j, i) 都会累加。默认值为假。

normed布尔型,可选

如果为真,则通过除以给定偏移量的累积共现总数来归一化每个矩阵 P[:,:, d, theta]。结果矩阵的元素总和为 1。默认值为 False。

返回

P4-D ndarray

灰度共现直方图。值 P[i,j,d,theta] 是灰度 j 在距离 d 处和与灰度 i 成角度 theta 处出现的次数。如果 normed 为 False,则输出类型为 uint32,否则为 float64。维度是:级别 x 级别 x 距离数 x 角度数。

参考

1

M. Hall-Beyer, 2007. GLCM Texture: A Tutorial https://prism.ucalgary.ca/handle/1880/51900 DOI:10.11575/PRISM/33280

2

R.M. Haralick, K. Shanmugam, and I. Dinstein, “Textural features for image classification”, IEEE Transactions on Systems, Man, and Cybernetics, vol. SMC-3, no. 6, pp. 610-621, Nov. 1973. DOI:10.1109/TSMC.1973.4309314

3

M. Nadler and E.P. Smith, Pattern Recognition Engineering, Wiley-Interscience, 1993.

4

Wikipedia, https://en.wikipedia.org/wiki/Co-occurrence_matrix

例子

计算 2 个 GLCM:一个用于向右偏移 1 个像素,一个用于向上偏移 1 个像素。

>>> image = np.array([[0, 0, 1, 1],
...                   [0, 0, 1, 1],
...                   [0, 2, 2, 2],
...                   [2, 2, 3, 3]], dtype=np.uint8)
>>> result = graycomatrix(image, [1], [0, np.pi/4, np.pi/2, 3*np.pi/4],
...                       levels=4)
>>> result[:, :, 0, 0]
array([[2, 2, 1, 0],
       [0, 2, 0, 0],
       [0, 0, 3, 1],
       [0, 0, 0, 1]], dtype=uint32)
>>> result[:, :, 0, 1]
array([[1, 1, 3, 0],
       [0, 1, 1, 0],
       [0, 0, 0, 2],
       [0, 0, 0, 0]], dtype=uint32)
>>> result[:, :, 0, 2]
array([[3, 0, 2, 0],
       [0, 2, 2, 0],
       [0, 0, 1, 2],
       [0, 0, 0, 0]], dtype=uint32)
>>> result[:, :, 0, 3]
array([[2, 0, 0, 0],
       [1, 1, 2, 0],
       [0, 0, 2, 1],
       [0, 0, 0, 0]], dtype=uint32)

相关用法


注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.feature.graycomatrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。