Aller au contenu principal
Objectifs
  1. Comprendre le fonctionnement des images ;
  2. Manipuler les pixels des images ;
  3. Créer des algorithmes modifiant des images.

TP1 - Programmer des images

Nous allons utiliser python pour programmer et manipuler les images et leurs pixels.

Au préalable

Sur EduPython, faire :

  1. Créer un nouveau fichier en cliquant sur l'icône 📄, ou en appuyant sur CTRL+N
  2. Enregistrer le fichier sous le nom TP1_Photographie en cliquant sur l'icône 💾, ou en appuyant sur CTRL+S

Bibliothèque PIL

PIL est une bibliothèque comportant un ensemble de fonctions pouvant interagir directement avec les images.

Importer PIL

On utilise la ligne suivante :

from PIL import Image

Elle signifie que dans la bibliothèque PIL, on importe l'ensemble des fonctionnalités de Image.

L'ensemble des fonctionnalités à utiliser est à découvrir ici ⬇️

img = Image.open("nom_fichier.extension")
  • img est une variable qui sauvegarde l'image que l'on a chargé.
  • Image.open est la fonction de PIL permettant de charger l'image.
  • nom_fichier.extension doit être le nom de votre fichier AVEC son extension.

Exemple :

image1 = Image.open("photo.jpg")
image2 = Image.open("chat.png")

image1 charge la photo photo.jpg, tandis que image2 charge chat.png.

Exercice 1 - Prise en main

  1. Quelle valeur correspond à un pixel rouge ? A un pixel jaune ?
  2. Créer une image de taille 9x9 de couleur jaune et la stocker dans la variable image.
  3. Afficher l'image.
  4. Modifier le pixel de coordonnées x=1, y=1 par du rouge.
  5. Faire la même avec le pixel de coordonnées x=7, y=1.
  6. Mettre toute la 6ème rangée en bleu.
Parcourir des pixels

On peut parcourir les rangées de l'image et afficher les pixels grâce à ce code :

for x in range(9):
print(image.getpixel((x,0)))
  1. Rajouter dans le code une boucle for permettant de parcourir les colonnes de chaque rangée.
  2. Modifier le print pour afficher tous les pixels.
    Petite aide

Exercice 2 - Jouer avec une image

  1. Télécharger l'image batman.png.
  2. Importer l'image dans le programme et la stocker dans la variable batman.
  3. Afficher la largeur et la longueur de l'image.
  4. Parcourir les pixels de l'image, et afficher la valeur de chaque pixel.
  5. Sauvegarder dans une varible rouge, vert, bleu les valeurs de chaque composante des pixels.
    Composante

    Ici, le terme composante fait référence aux couleurs composants un pixel, à savoir le rouge, le vert et le bleu.

  6. Modifier l'image pour intervertir les couleurs. Le rouge devient vert, le vert devient bleu, et le bleu devient rouge.
    Petite aide
  7. Modifier l'image pour supprimer la couleur rouge (valeur rouge à 0).

On souhaite mettre l'image dans sa version négative. Pour faire le négatif d'une image, il faut soustraire 255 à la valeur de chaque composante d'un pixel.
Si un pixel a pour valeur (120,54,2), son négatif serait (255-120, 255-54, 255-2), soit (135, 201, 253).

  1. Faire le négatif de batman.

On souhaite mettre l'image en nuance de gris. La nuance de gris correspond à la moyenne des 3 composantes, attribée à chaque composante du pixel.
Si un pixel a pour valeur (120,54,2), la moyenne est de (120+54+2)/3 soit 59, sa nuance de gris serait (59, 59, 59).

  1. Faire la nuance de gris de batman.