Bonjour,
Suite à un autre topic sur ce forum, j'ai réussi à développer le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) :

Nom : histo.PNG
Affichages : 971
Taille : 209,8 Ko

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