Извлечение текстурных особенностей из изображений с помощью GLCM

Я использую GLCM для получения функций текстуры из изображений, чтобы использовать их в алгоритмах классификации, таких как knn и дерево решений. Когда я запускаю функцию greycoprops, она возвращает массив из 4 элементов для каждой функции следующим образом. Должен ли я получить среднее значение каждой функции, которая будет использоваться в моей классификации, или как мне с ними справиться?

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

person rana hd    schedule 17.05.2019    source источник


Ответы (1)


Из документов это что возвращает greycoprops:

results : 2-D ndarray

2-мерный массив. results[d, a] — это свойство ‘prop’ для d-го расстояния и a-го угла.

Вы получаете массив значений контраста 1 × 4, потому что вы передали 4 угла в graycomatrix. Чтобы дескриптор GLCM был инвариантным к вращению, обычной практикой является усреднение значений признаков, вычисленных для разных углов и одного и того же расстояния. Взгляните на эту статью, чтобы получить более подробное объяснение того, как для достижения функций 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)
person Tonechas    schedule 18.05.2019