Thème : La photographie

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 ?

Solution

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

Indice

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))

Solution

Exemple de code solution :

1
from PIL import Image
2
3
MonImage=Image.open("paysage.jpg")
4
5
Taille=MonImage.size
6
#Taille récupère deux informations : Taille = (Largeur de l'image, hauteur de l'image)
7
8
for i in range(Taille[0]):      #On parcourt l'image selon la largeur
9
    for j in range(Taille[1]):  #On parcourt l'image selon la hauteur
10
        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)
11
        gris=(R+G+B)//3         #On fait la moyenne des trois composantes. le // permet d'avoir le quotient entier dans la division par trois
12
        MonImage.putpixel((i,j),(gris,gris,gris)) #On met le pixel de coordonnées (i;j) à la couleur gris
13
14
MonImage.show()

Fichier en téléchargement :

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale