Exercice supplémentaire 1 : Transformer une image couleur en nuance de gris
1- Définir un gris en RGB
Pour définir un gris en RGB, il suffit de prendre la moyenne des trois composantes R, G, B.
Une erreur classique est de faire l'opération (R+G+B)/3 car le résultat n'est pas forcément un nombre entier. Pour avoir le quotient entier dans la division par 3, l'instruction python est : (R+G+B)//3
Question
Que deviendrait un pixel de composante RGB (14,212,177) lors de cette transformation ?
On calcule la composante gris avec la formule :
(R+G+B)//3 = (14+212+177)//3 = 134
Le pixel deviendrait donc de composante (134,134,134)
2- Programme Python pour transformer une image en nuance de gris
Télécharger l'image suivante (nom de fichier : paysage.jpg) :

Question
Recopier et compléter le programme suivant pour transformer l'image en niveaux de gris. Le programme sera enregistré sous le nom paysage_en_gris.py |
Lignes de code à utiliser :
gris=(R+G+B)//3
for i in range(Taille[0]):
MonImage.putpixel((i,j),(gris,gris,gris))
for j in range(Taille[1]):
R,G,B= MonImage.getpixel((i,j))
Exemple de code solution :
from PIL import Image
MonImage=Image.open("paysage.jpg")
Taille=MonImage.size
#Taille récupère deux informations : Taille = (Largeur de l'image, hauteur de l'image)for i in range(Taille[0]): #On parcourt l'image selon la largeur
for j in range(Taille[1]): #On parcourt l'image selon la hauteur
R,G,B=MonImage.getpixel((i,j)) #On récupère le code R,G,B du pixel de l'image de coordonnées (i;j)
gris=(R+G+B)//3 #On fait la moyenne des trois composantes. le // permet d'avoir le quotient entier dans la division par trois
MonImage.putpixel((i,j),(gris,gris,gris)) #On met le pixel de coordonnées (i;j) à la couleur gris
MonImage.show()






