Partie P8 · exercices 44 à 45

Projet : un polyptyque numérique

Inspiré des sérigraphies d'Andy Warhol : la même image, quatre filtres différents

En 1962, l'artiste américain Andy Warhol a créé le Diptyque Marilyn : une même image répétée, chaque fois avec des couleurs différentes. Tu vas créer ton polyptyque numérique : ta propre photo, répétée avec des filtres que tu inventes.

CoursAssembler quatre images

zone 1 photo d'origine zone 2 filtre n°1 zone 3 filtre n°2 zone 4 filtre n°3 image finale : 2 × largeur sur 2 × hauteur
L'image finale est deux fois plus large et deux fois plus haute que la photo.
polyptyque.py
from PIL import Image

photo = Image.open("mon_image.jpg").convert("RGB")
largeur, hauteur = photo.size
creation = Image.new("RGB", (2 * largeur, 2 * hauteur))

for x in range(largeur):
    for y in range(hauteur):
        R1, V1, B1 = photo.getpixel((x, y))

        creation.putpixel((x, y), (R1, V1, B1))                        # zone 1 : image d'origine

        R2, V2, B2 = V1, B1, R1                                        # zone 2 : filtre n°1
        creation.putpixel((x + largeur, y), (R2, V2, B2))

        R3, V3, B3 = 255 - R1, 255 - V1, 255 - B1                      # zone 3 : filtre n°2
        creation.putpixel((x, y + hauteur), (R3, V3, B3))

        g = (R1 + V1 + B1) // 3                                        # zone 4 : filtre n°3
        creation.putpixel((x + largeur, y + hauteur), (g, g, g))

creation.show()
creation.save("NOM_Prenom_polyptyque.jpg")

Chaque pixel \((x\,;y)\) de la photo est lu une fois, puis écrit quatre fois, décalé de la largeur ou de la hauteur de la photo.

Des idées de filtres

IdéeCalcul
négatif\((255 - R_1\,;255 - V_1\,;255 - B_1)\)
permutation des canaux\((V_1\,;B_1\,;R_1)\)
un seul canal\((R_1\,;0\,;0)\) pour ne garder que le rouge
niveaux de gris\((g\,;g\,;g)\) avec \(g = \dfrac{R_1 + V_1 + B_1}{3}\)
deux couleurs, façon affichesi \(g > 128\), une première couleur ; sinon une seconde, par exemple rose et bleu ciel
mélange avec un drapeaumoyenne de la photo et du drapeau (exercice de fusion)
pixellisation, flouvoir les exercices de pixellisation et de flou

ExercicesÀ toi de créer

EX 44Je m'entraîne 🌶️🌶️application

Exercice 44 — Quatre fois la même image

Recopie polyptyque.py avec l'image de ton choix (photo de la classe libre de droit, paysage, objet…), en donnant à photo le nom de ton fichier. Exécute-le.

  1. Quelle est la définition de ton image finale, si la photo mesure 400 pixels sur 300 ?
  2. Remplace le filtre de la zone 4 par un filtre de ton choix.
Indice

La photo et le programme doivent être dans le même dossier.

💾 NOM_Prenom_ex44.py

EX 45Projet 🌶️🌶️🌶️🌶️défi

Exercice 45 — Mon polyptyque numérique

Crée ton polyptyque : une image finale composée d'au moins quatre images juxtaposées, obtenues avec des filtres que tu écris toi-même.

  • Image de départ : une image libre de droit, sans visage reconnaissable, dont tu indiques la source dans un commentaire.
  • Version de base : quatre zones. En haut à gauche, l'image d'origine. Les trois autres reçoivent des filtres différents.
  • Version moyenne : au moins un filtre mélange la photo avec un drapeau que tu as créé toi-même (pas le drapeau français vu en cours).
  • Version avancée : plus de quatre zones, ou au moins un filtre que tu as inventé (pixellisation, flou, seuillage en deux couleurs, mélange…).

L'originalité, la difficulté des programmes et l'esthétique du polyptyque comptent dans l'évaluation. Dépose sur Pronote le programme NOM_Prenom_polyptyque.py et l'image finale.

CritèrePoints
Le programme fonctionne, il est lisible et commenté (source de l'image indiquée)5
Variété et originalité des filtres6
Difficulté technique (drapeau, filtre inventé, plus de quatre zones)5
Qualité esthétique de l'image finale4
Total20
Indice 1

Teste chaque filtre séparément sur une petite image avant de les assembler.

Indice 2

Pour un drapeau, construis d'abord une image drapeau avec une double boucle (voir l'exercice sur les drapeaux), puis mélange-la.

Indice 3

Pour changer la taille de la photo de départ : photo = photo.resize((400, 300)).

💾 NOM_Prenom_polyptyque.py + NOM_Prenom_polyptyque.jpg

À retenirBilan du thème

Ce que tu sais faire maintenant

  • Expliquer comment un appareil photo fabrique une image et la coder avec des pixels et des couleurs RVB.
  • Calculer définition, résolution, poids et taille d'impression.
  • Créer une image et écrire des filtres avec Python.
  • Lire les métadonnées d'une photo et en mesurer les risques.
  • Garder un regard critique sur les images.