Как рассчитать энтропию в python? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть 5 изображений в одной папке. я хочу посчитать энтропию всех этих изображений одно за другим и хочу показать их. мой код

import glob
from PIL import Image
import numpy as np
import matplotlib.pylab as plt
def entropy(signal):

    lensig=signal.size
    symset=list(set(signal))
    numsym=len(symset)
    propab=[np.size(signal[signal==i])/(1.0*lensig) for i in symset]
    ent=np.sum([p*np.log2(1.0/p) for p in propab])
    return ent
for filename in glob.glob('/content/drive/My Drive/Colab Notebooks/Asplab/Cifar/*.png'):

 colorIm=Image.open(filename)
 greyIm=colorIm.convert('L')
 colorIm=np.array(colorIm)
 greyIm=np.array(greyIm)

N=5
S=greyIm.shape
 for i in range(5):   
   for row in range(S[0]):

    for col in range(S[1]):

    Lx=np.max([0,col-N])
    Ux=np.min([S[1],col+N])
    Ly=np.max([0,row-N])
    Uy=np.min([S[0],row+N])
    region=greyIm[i, Ly:Uy,Lx:Ux].flatten()
    E1[row,col]=entropy(region)  

IndexError: слишком много индексов для массива

...