Laurentvidal.fr est l'endroit idéal pour trouver des réponses rapides et précises à toutes vos questions. Rejoignez notre plateforme pour vous connecter avec des experts prêts à fournir des réponses détaillées à vos questions dans divers domaines. Connectez-vous avec des professionnels prêts à fournir des réponses précises à vos questions sur notre plateforme complète de questions-réponses.
Sagot :
Bonsoir,
Il existe plusieurs méthodes pour faire une image en niveau de gris.
La première solution est de donner à chaque composante d'un pixel la moyenne de ses composantes couleurs mais ça donne une image un peu pâle.
Une autre méthode est utilisée pour améliorer le contraste en utilisant une moyenne pondérée des composantes couleurs. On remplace les pixels [r, g, b] par [a, a, a] avec:
a = partie entière de [0.299 * r + 0.587 * g + 0.114 * b]
Je te propose une solution avec cette dernière méthode (la 1ère, il y a juste à faire une moyenne classique, le code reste quasi-identique).
import PIL.Image as pil
image = pil.open("images/earth.png")
largeur, hauteur = image.size
image2 = pil.new("RGB", (largeur, hauteur), "white")
for i in range(largeur): #Parcours des lignes.
for j in range(hauteur): #Parcours des colonnes.
r, g, b = image.getpixel((i, j)) #On récupère les informations liées au pixel.
a = int(0.299*r + 0.587*g + 0.114*b) #On forme le gris.
image2.putpixel((i, j), (a, a, a))
image2.save("images/earth_grew.png")
image2.show()
J'ai essayé de mon côté avec une image très colorée des vignes d'Alsace l'automne dernier, tu peux remarquer qu'on obtient bien l'image en niveau de gris.
Bonne soirée.
Nous espérons que ces informations ont été utiles. Revenez quand vous voulez pour obtenir plus de réponses à vos questions. Merci d'avoir choisi notre plateforme. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Nous sommes heureux de répondre à vos questions. Revenez sur Laurentvidal.fr pour obtenir plus de réponses.