Skip to content

Retouche d'image avec PythonActivités et stratégies pédagogiques

Travailler avec des images rend la programmation concrète et motivante pour les élèves. Quand ils voient immédiatement le résultat de leurs lignes de code, la logique algorithmique prend tout son sens et les erreurs deviennent des opportunités de compréhension.

SecondeSNT : Culture et Citoyenneté Numérique4 activités15 min45 min

Objectifs d’apprentissage

  1. 1Calculer les nouvelles valeurs RVB d'un pixel après modification de la luminosité et du contraste.
  2. 2Concevoir un script Python qui applique une transformation géométrique simple (rotation, redimensionnement) à une image.
  3. 3Créer un filtre d'image original en combinant au moins deux transformations élémentaires et en justifiant le choix des paramètres.
  4. 4Analyser l'impact de différents paramètres (facteur de luminosité, facteur de contraste) sur la perception visuelle d'une image.
  5. 5Expliquer le rôle de la bibliothèque Pillow dans l'accès et la manipulation des données pixel d'une image numérique.

Vous souhaitez un plan de cours complet avec ces objectifs ? Générer une mission

Atelier Guidé : Mes premiers pas avec Pillow

Les élèves suivent un notebook guidé pour charger une image, afficher ses dimensions, extraire la couleur d'un pixel donné et modifier un carré de pixels. Chaque étape est accompagnée d'une question de compréhension à discuter avec son voisin.

Préparation et détails

Comment écrire un script Python pour modifier automatiquement la luminosité et le contraste d'une image ?

Conseil de facilitation: Pendant l'Atelier Guidé, insistez sur l'importance de sauvegarder une copie du fichier original avant toute manipulation pour éviter les pertes de données accidentelles.

Setup: Travail en îlots avec supports de travail

Materials: Dossier de la situation-problème, Cartes de rôles (facilitateur, secrétaire, etc.), Fiche de protocole de résolution, Grille d'évaluation de la solution

AppliquerAnalyserÉvaluerCréerCompétences relationnellesPrise de décisionAutogestion

Défi Progressif : Du gris au sépia en trois niveaux

Les élèves réalisent trois transformations de difficulté croissante : niveaux de gris (niveau 1), ajustement de luminosité (niveau 2), filtre sépia (niveau 3). Chaque niveau débloqué donne accès à un indice pour le suivant. Les binômes avancent à leur rythme.

Préparation et détails

Quels principes mathématiques sous-tendent les opérations de modification pixel par pixel d'une image ?

Conseil de facilitation: Pour le Défi Progressif, fournissez un exemple visuel de chaque niveau de transformation sépia pour que les élèves visualisent l'objectif final avant de coder.

Setup: Travail en îlots avec supports de travail

Materials: Dossier de la situation-problème, Cartes de rôles (facilitateur, secrétaire, etc.), Fiche de protocole de résolution, Grille d'évaluation de la solution

AppliquerAnalyserÉvaluerCréerCompétences relationnellesPrise de décisionAutogestion

Mini-Projet : Créer un filtre Instagram maison

Par groupes de trois, les élèves conçoivent un filtre original combinant au moins deux transformations (couleur, contraste, saturation). Ils documentent leur code avec des commentaires et présentent le résultat en comparant l'avant et l'après.

Préparation et détails

Comment concevoir un filtre d'image original en combinant des transformations élémentaires ?

Conseil de facilitation: Lors du Mini-Projet, encouragez les élèves à tester leurs filtres sur plusieurs images pour vérifier leur robustesse et leur polyvalence.

Setup: Travail en îlots avec supports de travail

Materials: Dossier de la situation-problème, Cartes de rôles (facilitateur, secrétaire, etc.), Fiche de protocole de résolution, Grille d'évaluation de la solution

AppliquerAnalyserÉvaluerCréerCompétences relationnellesPrise de décisionAutogestion
15 min·Classe entière

Galerie marchande: Exposition des filtres créés

Chaque groupe affiche son image originale, son image transformée et son code commenté. Les visiteurs doivent deviner la logique du filtre avant de lire le code, puis noter une question technique ou un compliment sur un post-it.

Préparation et détails

Comment écrire un script Python pour modifier automatiquement la luminosité et le contraste d'une image ?

Conseil de facilitation: Pendant la Galerie marchande, imposez un temps de silence lors de la visite pour que chacun puisse observer attentivement les créations des autres sans distraction.

Setup: Espace mural dégagé ou tables disposées en périphérie de la salle

Materials: Papier grand format ou panneaux d'affichage, Feutres et marqueurs, Post-it pour les retours critiques

ComprendreAppliquerAnalyserCréerCompétences relationnellesConscience sociale

Enseigner ce sujet

Commencez par des manipulations simples pour ancrer la compréhension des objets Image et des pixels. Évitez de présenter trop de concepts d'un coup, car la manipulation d'images peut rapidement devenir abstraite si les bases ne sont pas solides. Privilégiez des retours visuels constants : afficher l'image avant/après chaque transformation aide à construire la confiance et la compréhension. Utilisez des métaphores visuelles pour expliquer les concepts techniques, comme comparer un pixel à une case d'un quadrillage coloré.

À quoi s’attendre

À la fin de ces activités, les élèves savent manipuler une image en Python, appliquer des transformations de base, et comprendre les mécanismes sous-jacents. Ils peuvent expliquer comment une modification de code se traduit en changement visuel et justifier leurs choix techniques.

Ces activités sont un point de départ. La mission complète est l’expérience.

  • Script de facilitation complet avec dialogues de l’enseignant
  • Supports élèves imprimables, prêts pour la classe
  • Stratégies de différenciation pour chaque profil d’apprenant
Générer une mission

Attention à ces idées reçues

Idée reçue couranteDuring l'Atelier Guidé, certains élèves pensent que Python modifie directement le fichier image sur le disque dès qu'on change un pixel.

Ce qu'il faut enseigner à la place

Faites sauvegarder le fichier original sous un nouveau nom avant toute manipulation. Demandez aux élèves de modifier l'image sans sauvegarder, puis d'afficher le résultat. Ensuite, comparez avec le fichier original pour montrer que les modifications ne persistent pas sans un appel explicite à save().

Idée reçue couranteDuring le Défi Progressif, des élèves croient qu'augmenter la luminosité consiste simplement à ajouter une valeur à chaque composante RVB sans limite.

Ce qu'il faut enseigner à la place

Demandez aux élèves de tester leur script sans plafonner les valeurs RVB à 255. Observez ensemble les artefacts visuels (pixels saturés en blanc). Puis, introduisez la fonction min() pour limiter les valeurs et discutez de l'importance de cette contrainte technique.

Idée reçue couranteDuring le Mini-Projet, certains élèves pensent que les bibliothèques Python font tout le travail et qu'il n'y a rien à comprendre en profondeur.

Ce qu'il faut enseigner à la place

Demandez aux élèves de recoder un filtre simple (comme une inversion de couleurs) sans utiliser Pillow, en manipulant directement les valeurs RVB d'un petit tableau. Cela les obligera à comprendre le parcours des pixels et les calculs sous-jacents.

Idées d'évaluation

Vérification rapide

After l'Atelier Guidé, demandez aux élèves d'écrire un court script qui charge une image et affiche les valeurs RVB des 5 premiers pixels. Posez la question : 'Comment interprétez-vous ces valeurs pour décrire la couleur de ces pixels ?' Évaluez leur capacité à lire et interpréter les données RVB.

Billet de sortie

After le Défi Progressif, sur une fiche, demandez aux élèves de décrire en une phrase comment ils modifieraient le script pour rendre une image plus sombre. Puis, demandez-leur de nommer une transformation supplémentaire qu'ils aimeraient appliquer à une image et d'expliquer pourquoi.

Évaluation par les pairs

During le Mini-Projet, les élèves travaillent en binômes sur un filtre personnalisé. Après avoir terminé, ils échangent leurs scripts et leurs images résultantes. Chaque binôme rédige une courte critique constructive sur le filtre de l'autre : 'Ce que j'ai aimé, c'est... et une suggestion pour l'améliorer serait...'

Extensions et étayage

  • Challenge : Proposez aux élèves avancés de recréer un filtre artistique complexe comme le 'Dithering' ou de combiner plusieurs transformations en une seule fonction.
  • Scaffolding : Pour les élèves en difficulté, fournissez un script partiellement complété avec des commentaires clairs indiquant où et comment modifier le code.
  • Deeper exploration : Invitez les élèves à explorer la bibliothèque OpenCV pour des transformations plus avancées comme la détection de contours ou l'analyse de couleurs dominantes.

Vocabulaire clé

PixelPlus petite unité d'une image numérique. Chaque pixel possède une couleur définie par des valeurs (souvent RVB).
Composante RVBValeurs Rouge, Vert, Bleu qui, combinées, déterminent la couleur d'un pixel. Chaque composante a généralement une valeur entre 0 et 255.
LuminositéDegré de clarté ou d'obscurité d'une image. Augmenter la luminosité ajoute de la lumière à chaque pixel.
ContrasteDifférence d'intensité lumineuse entre les zones claires et sombres d'une image. Augmenter le contraste accentue ces différences.
Bibliothèque PillowUne bibliothèque Python qui permet d'ouvrir, manipuler et sauvegarder de nombreux formats d'images.

Prêt à enseigner Retouche d'image avec Python ?

Générez une mission complète avec tout ce dont vous avez besoin

Générer une mission