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.

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

✏️Exercices
  1. 1
    Quelle valeur correspond à un pixel rouge ? A un pixel jaune ?
  2. 2
    Créer une image de taille 9x9 de couleur jaune et la stocker dans la variable image.
  3. 3
    Afficher l'image.
  4. 4
    Modifier le pixel de coordonnées x=1, y=1 par du rouge.
  5. 5
    Faire la même avec le pixel de coordonnées x=7, y=1.
  6. 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. 7
    Rajouter dans le code une boucle for permettant de parcourir les colonnes de chaque rangée.
  2. 8
    Modifier le print pour afficher tous les pixels.
    Petite aide

Exercice 2 - Jouer avec une image

✏️Exercices
  1. 1
    Télécharger l'image batman.png.
  2. 2
    Importer l'image dans le programme et la stocker dans la variable batman.
  3. 3
    Afficher la largeur et la longueur de l'image.
  4. 4
    Parcourir les pixels de l'image, et afficher la valeur de chaque pixel.
  5. 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. 6
    Modifier l'image pour intervertir les couleurs. Le rouge devient vert, le vert devient bleu, et le bleu devient rouge.
    Petite aide
  7. 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. 8
    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. 9
    Faire la nuance de gris de batman.