1 pièce(s) jointe(s)
Générer plusieurs histogrammes
Bonjour,
Suite à un autre topic sur ce forum, j'ai réussi à développer le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os
directory = "/home/admin01/Images/test/"
for root, dirs, files in os.walk(directory):
for file in files:
mon_image = Image.open(directory + file)
hist = [] # ou hist = list()
largeur,hauteur = mon_image.size
for i in range(256):
hist.append(0)
for ligne in range(hauteur):
for colonne in range(largeur):
p = mon_image.getpixel((colonne,ligne))
n_gris = int((p[0]+p[1]+p[2])/3)
hist[n_gris] = hist[n_gris]+1
n_abscisses = np.linspace(0,255,256)
n_ordonnees = np.array(hist)
plt.xlim(0,255)
plt.plot(n_abscisses,n_ordonnees)
plt.grid(True)
plt.title('Densité de couleur de %s' %file)
plt.savefig('/home/admin01/Images/histo/%s' %file)
#plt.show()
hist = [] |
Mon code génère bien les histogramme. Pour le premier de la liste de mon directory tout est bon mais pour le deuxième mon programme superpose les deux histogrammes, ce qui rend vite illisible l'histogramme de base. Par exemple ci dessous je vous affiche l'histogramme retourné pour la 4eme photo ( ou il y a 4 courbes) :
Pièce jointe 202435
Au début je pensais que c'était une erreur d'indentation mais je n'ai pas trouvé :/
Merci par avance de votre aide
Florian