Bonjour,
Tout est dans le titre
Plus précisément je fais un tri sur des histogrammes de photos qui sont dans un dossier. Malheureusement, le fait que les images soient open mais ne soit jamais fermés me prends énormément de mémoire et fait planter mon exécution. ( je suis amené à travailler sur des fichiers de plus de 100 000 images donc ça fait lourd ).
J'ai déjà tenté avec la fonction del mais cela ne fonctionne pas :/

Je vous joint ci dessous mon code et une photo du warning pour plus d'informations :

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
32
33
34
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os
import shutil
 
directory = "/home/admin01/Images/bcp/"
directorysave = "/home/admin01/Images/histo/"
 
for root, dirs, files in os.walk(directory):
	for file in files:
		image = Image.open(directory + file) 
		try: 
			image.load()
		except IOError:
			shutil.copy2(directory + file, directorysave+ "photo/" + file)
		hist = [] # ou hist = list()
		greymap = image.convert("L")
		values = greymap.histogram()[:256]
		n_abscisses = np.linspace(0,255,256)
		n_ordonnees = np.array(values)			
		plt.figure()
		plt.xlim(0,255)
		plt.plot(n_abscisses,n_ordonnees)
		plt.grid(True)
		lowers = [v for v in values if v <= 100]
		if(len(lowers)>150):	
			plt.title('Densité de couleur du picto '+ file)
			shutil.copy2(directory + file, directorysave+ "picto/" + file)
		else:
			plt.title('Densité de couleur de la photo ' + file)
			shutil.copy2(directory + file, directorysave+ "photo/" + file)
		#plt.show()
		hist = []

Nom : warning.PNG
Affichages : 1724
Taille : 110,6 Ko

Voila merci d'avance pour vos réponses =)