09c.Traitement image avec Python eleve.doc
2/3
Les données sont récupérées sous forme d’une liste entre crochets.
Chaque élément de la liste est un triplet, qui contient dans l’ordre les valeurs des intensités couleur (R,V,B).
La liste data contient 8 éléments, qui correspondent aux 8 pixels de l’image, en partant du haut gauche.
Observer comment on accède à la composante R,V, ou B d’un pixe donné.
Observer comment on crée chacune des listes rouge, vert, bleu.
Exercice 2 Accès direct aux pixels : lecture et modification
Lancer le programme python « 05.Acces aux pixels.py», et observer le résultat de l’affichage.
from PIL import Image #on importe le module
img= Image.open("04.Exemple fichier couleur.png") #on ouvre l'image dans la variable img
taille = img.size
largeur, hauteur = img.size #on récupère la taille de l'image largeur x hauteur
print("largeur",largeur, "hauteur",hauteur)
data = list(img.getdata()) #on mémorise la liste des pixels rgb dans data
print (data[:]) #pour voir l'ensemble des pixels
print("fin des données originales")
# lecture de valeurs de pixels
for j in range (hauteur) :
print ("ligne : ", j)
for i in range (largeur) :
print("ligne : ", j, "colonne :", i)
pixel00 = img.getpixel((i,j))
print("valeur : ",pixel00)
print ("")
# modification de pixels
print (data[:]) #pour voir l'ensemble des pixels
img.putpixel((1,0),(0,0,170)) #modifie la colonne 1 cad la 2eme colonne et la ligne 0 , cad la 1er ligne
data1 = list(img.getdata()) #on mémorise la liste des pixels rgb dans data
print (data1[:]) #pour voir l'ensemble des pixels après modification
img.save("05.modifie.png")
Résultat de l’affichage :
Observer l’affichage de la console.
Les deux dernières lignes montrent le pixel modifié.
[(0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255), (0, 255, 255), (255, 255, 255)]
[(0, 0, 0), (0, 0, 170), (0, 255, 0), (0, 0, 255), (255, 255, 0), (255, 0, 255), (0, 255, 255), (255, 255, 255)]
Exercice 3 avec Python, inverser les niveaux de couleur
But de l’exercice :
On veut créer un programme dont les fonctionnalités sont les suivantes :
Lire le fichier image ( de type PNG) dans le répertoire courant. (ici : « 06.tigre.png »)
Modifier chaque pixel de l’image pour inverser l’intensité de couleur (ou bien les niveaux de gris).
Enregistrer l’image obtenue dans le répertoire courant sous un autre nom ( ici :« 06.tigre inverse.png »)
1) Ecrire l’algorithme correspondant.
2) Créer un fichier Python « 06.inverser les niveaux de couleur.py »
Reprendre les instructions découvertes dans les programmes python pour écrire le programme correspondant.
« 04.utilisation modulePIL.py »,
« 05.Acces aux pixels.py »