通过GLCM从图像中提取纹理特征

时间:2019-05-17 14:36:40

标签: python image-processing feature-extraction scikit-image glcm

我正在使用GLCM从图像中获取纹理特征,以将其用于knn和决策树等分类算法中。当我运行greycoprops函数时,它将为每个功能返回4个元素的数组,如下所示。我应该获取分类中要使用的每个功能的平均值,还是应该如何处理?

('Contrast = ', array([[0.88693423, 1.28768135, 1.11643255, 1.7071733 ]]))

1 个答案:

答案 0 :(得分:1)

greycopropsdocs返回:

  

results:二维ndarray

     
    

二维数组。 results[d, a]是第‘prop’个距离和第d个角度的属性a

  

由于您向graycomatrix传递了4个角度,因此得到1×4的对比度值数组。为了使GLCM描述符旋转不变,通常的做法是对针对不同角度和相同距离计算出的特征值取平均值。请查看this paper,以获取有关如何实现对旋转稳定的GLCM功能的更深入的解释。

演示

In [37]: from numpy import pi

In [38]: from skimage import data

In [39]: from skimage.feature.texture import greycomatrix, greycoprops

In [40]: img = data.camera()

In [41]: greycoprops(greycomatrix(img, distances=[1], angles=[0]), 'contrast')
Out[41]: array([[34000139]], dtype=int64)

In [42]: greycoprops(greycomatrix(img, distances=[1, 2], angles=[0]), 'contrast')
Out[42]: 
array([[ 34000139],
       [109510654]], dtype=int64)

In [43]: greycoprops(greycomatrix(img, distances=[1, 2], angles=[0, pi/4]), 'contrast')
Out[43]: 
array([[ 34000139,  53796929],
       [109510654,  53796929]], dtype=int64)

In [44]: greycoprops(greycomatrix(img, distances=[1], angles=[0, pi/4, pi/2]), 'contrast')
Out[44]: array([[34000139, 53796929, 20059013]], dtype=int64)