Энтропия изображения определяется следующим образом:
где - количество уровней серого (256 для 8-битных изображений), - вероятность того, что пиксель имеет уровень серого и - основание логарифмической функции.
Обратите внимание, что энтропия изображения довольно отличается от функции энтропии, извлеченной из GLCM изображения. Посмотрите этот пост , чтобы узнать больше.
Согласно вашему запросу, я прилагаю пример того, как вычисляется энтропия GLCM:
Сначала мы импортируем необходимые модули:
import numpy as np
from skimage.feature import greycomatrix
Затем мы читаем изображение:
img = io.imread('https://i.stack.imgur.com/07DZW.png')
GLCM (соответствующий пиксель справа ) изображения выше вычисляется следующим образом:
glcm = np.squeeze(greycomatrix(img, distances=[1],
angles=[0], symmetric=True,
normed=True))
И, наконец, мы применяем эту формулу для расчета энтропии:
где представляет записи GLCM.
Если мы установим на 2, результат будет выражен в битах .
entropy = -np.sum(glcm*np.log2(glcm + (glcm==0)))
# yields 10.704625483788325