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

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

最佳答案

docs中,这是greycoprops返回的内容:


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


由于将4个角度传递给graycomatrix,因此您将获得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)

关于python - 通过GLCM从图像中提取纹理特征,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56188637/

10-08 22:32