Извлечение текстурных особенностей из изображений с помощью GLCM - PullRequest
2 голосов
/ 17 мая 2019

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

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

1 Ответ

1 голос
/ 18 мая 2019

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

results: 2-й снимок

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

Вы получаете массив значений контраста 1 & times; 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)
...