👤

Bonjour à tous, j'ai une activité python à faire mais je ne trouve pas le code RGB de la nuance de gris, le but et de mettre un filtre gris sur l'image et non de mettre toute l'image en gris. Merci beaucoup de votre aide ;)

Bonjour À Tous Jai Une Activité Python À Faire Mais Je Ne Trouve Pas Le Code RGB De La Nuance De Gris Le But Et De Mettre Un Filtre Gris Sur Limage Et Non De Me class=

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.

View image THOMAS756
View image THOMAS756

© 2024 IDNLearn. All rights reserved.