SNT · seconde et 3e
À la découverte de la photographie numérique
Allume un capteur photon par photon, pose les filtres de Bayer et découvre pourquoi les photosites du capteur ne sont pas les pixels de l'image. Regarde ensuite un programme transformer une photo pixel après pixel, puis programme tes propres filtres en Python, pas à pas. Enfin, lis les métadonnées cachées dans tes photos, qui ne quittent jamais ton appareil, et mène l'enquête : où habite Lou, qui publie ses photos sans les nettoyer ? Apprends à publier sans te faire localiser et cherche les indices d'une retouche, en sachant qu'aucun n'est une preuve.
Les quatre thèmes
Les défis
Des questions courtes par thème, au niveau choisi, avec une médaille à gagner pour chaque thème.
Relever un défi →Le lexique
Les mots de la photographie numérique expliqués simplement : photosite, pixel, définition, profondeur de couleur, dématriçage, métadonnée…
Ouvrir le lexique →Pour l'enseignant
Le bouton Découverte (3e) / Seconde (SNT), en haut à droite, adapte les textes, les missions et les défis. Chaque activité a sa propre adresse (par exemple #seaux, #loupe, #atelier-python ou #exif) à donner aux élèves. Les quatre thèmes sont complets, chacun avec ses quatre activités, ses missions aux deux niveaux et son défi : 1, « Le capteur », 2, « Le pixel, trois nombres », 3, « Transformer une image par programme », et 4, « Métadonnées, partage et trucages » (« Lire l'EXIF », « L'enquête de localisation », « Publie sans te faire localiser » et « Vraie ou retouchée ? »). Les photos que les élèves ouvrent dans « Lire l'EXIF » ou nettoient dans « Publie sans te faire localiser » sont lues dans le navigateur et ne sont envoyées nulle part ; leur position n'est affichée qu'à leur demande (pensez au vidéoprojecteur). Les images de « Vraie ou retouchée ? » sont dessinées par l'application : aucune vraie photo, aucun visage. L'atelier Python utilise l'interpréteur de « À la découverte de l'informatique » : le dossier voisin informatique doit être copié avec l'application. Tout fonctionne dans le navigateur, sans compte et hors connexion ; la progression reste sur l'appareil de l'élève. Programme de SNT de 2019 ; sa révision, prévue pour la rentrée 2027, est signalée dans chaque thème.
Photos d'exemple : Wikimedia Commons, versées dans le domaine public par leurs auteurs (CC0), sans personne reconnaissable ; leurs auteurs et leurs pages sources sont dans les sources et crédits. Capteur, scènes, mires, smartphone, photo sous-exposée, photos et images du thème 4 et dessins sont calculés par l'application ; fond de la carte du monde : Natural Earth (domaine public).
© Jérémy Grenier · ScolaTools, tous droits réservés.
Le lexique
Sources, licences et crédits
Droits
« À la découverte de la photographie numérique » est une application de Jérémy Grenier pour ScolaTools : © Jérémy Grenier · ScolaTools, tous droits réservés. Textes, questions, dessins, scènes, mires, animations et calculs sont rédigés, dessinés et programmés pour l'application.
Photos d'exemple
Téléchargées sur Wikimedia Commons par le script outils/recuperer-photos.js, qui vérifie la licence sur la page de chaque fichier et note son adresse, son auteur et la date de vérification. Aucune personne reconnaissable, aucune marque visible.
Ce que calcule l'application
- Le capteur à seaux : un capteur simulé de 8 × 8 photosites. Pour chaque photosite, le nombre de photons est tiré au hasard selon une loi de Poisson (méthodes exactes de Knuth et de Hörmann), plafonné à 10 000 électrons (capacité du puits), puis lu avec un bruit de 3 électrons sur 12 ou 14 bits. Éclairements et temps de pose : ordres de grandeur réalistes. Les scènes (paysage, mur gris, bougie) sont calculées par l'application.
- La matrice de Bayer : à partir des couleurs de la photo, l'application recalcule ce qu'aurait mesuré chaque photosite derrière son filtre (lumière linéaire, 12 bits, motif RGGB), puis reconstitue les couleurs par dématriçage bilinéaire.
- Le dématriçage : la mire de rayures est dessinée par l'application (en gris) ; le tissu (réduit à 330 pixels de large, puis recadré au centre) et le phare (réduit à 480 pixels de large) sont des photos. Chacune est ramenée à ses valeurs brutes (matrice de Bayer RGGB, 12 bits), puis dématricée par trois méthodes : copie du plus proche voisin, moyenne des voisins (bilinéaire) et méthode guidée par le gradient (inspirée de celle de John Hamilton et James Adams, Kodak, années 1990, simplifiée pour le rouge et le bleu ; calcul en nombres entiers, comme dans un appareil). Le nombre « fausses couleurs » est l'écart de teinte moyen avec la scène de départ.
- Photosites ou pixels ? : trois capteurs d'exemple au format 4:3 (4 000 × 3 000, 8 000 × 6 000 et 8 192 × 6 144 photosites ; les deux derniers en Quad Bayer), pas des modèles réels. La zone utilisée et la définition de l'image sont calculées selon le format, le zoom numérique, le regroupement et la taille choisis ; la photo de nuit est simulée par le moteur du capteur à seaux (loi de Poisson).
- La loupe : les photos du phare et des crayons, réduites par l'application à 480 pixels de large (moyenne calculée en lumière linéaire) ; les nombres R, V, B affichés sont ceux de cette image, sur 8 bits par composante. Les pixels que l'élève modifie ne changent que dans la page.
- La profondeur de couleur : le ciel du soir (dégradé, mer et silhouette d'un phare, 640 × 360 pixels, sans grain) est calculé par l'application ; la photo du phare est réduite à 480 × 360 pixels. Pour n bits par composante, chaque nombre garde ses n bits de poids fort, puis il est remis à l'échelle de 0 à 255 pour l'écran (niveau × 255 ÷ (2ⁿ − 1)). Le poids affiché est celui des nombres des pixels seuls, sans en-tête ni compression. Tramage (pour aller plus loin) : diffusion d'erreur de Robert Floyd et Louis Steinberg (1976).
- RVB et TSL : la roue des teintes et les passages de RVB à TSL suivent les formules de la fonction hsl() du CSS ; la roue est calculée par l'application. Le pixel mystère est tiré au hasard dans la photo des crayons réduite à 480 pixels de large (une couleur assez vive, au milieu d'une zone de la même couleur). Niveaux de gris : moyenne simple, moyenne pondérée (0,299 ; 0,587 ; 0,114) et saturation à zéro.
- Définition et impression : la photo du phare réduite à 640 × 480 pixels. Taille d'impression = pixels ÷ résolution × 2,54 cm (le pouce vaut exactement 2,54 cm) ; formats de papier de la norme ISO 216 (série A) et tirage photo 15 × 10 cm ; l'image est posée entière sur la feuille. La distance à partir de laquelle on ne distingue plus les pixels suppose un œil qui voit à 10/10, c'est-à-dire qui sépare deux points vus sous une minute d'angle : un ordre de grandeur.
- Les filtres pas à pas : la photo du phare réduite à 80 × 60 pixels et celle des crayons à 80 × 54 pixels pour le balayage, à 480 pixels de large pour la photo entière. Les formules calculent en nombres entiers, comme le programme Python affiché : niveaux de gris par la moyenne, (r + v + b) // 3, ou par TSL, (max + min) // 2 ; négatif, 255 − valeur ; seuil sur la moyenne entière ; échange de deux composantes. Nombre d'opérations par pixel : chaque addition, soustraction, multiplication, division ou comparaison compte pour une.
- Courbe et histogramme : les photos du phare et du brouillard réduites à 480 pixels de large ; la photo sous-exposée est la photo du phare assombrie par l'application (lumière linéaire divisée par 4, soit 2 crans de moins : une simulation). Entre ses points, la courbe est une interpolation cubique monotone (Fritsch et Carlson, 1980), rangée dans une table de 256 valeurs ; l'histogramme compte les trois composantes de chaque pixel ; l'étendue va du 1 % au 99 % des nombres.
- Les contours : les photos du phare (480 × 360 pixels) et des crayons (480 × 321 pixels). Le gris d'un pixel est la moyenne entière (r + v + b) // 3 ; le pixel devient blanc si l'écart avec le gris de son voisin de droite ou de son voisin du dessous atteint le seuil. Le léger flou est la matrice [1 2 1 ; 2 4 2 ; 1 2 1] divisée par 16. Le ciel et le contour du phare sont deux zones délimitées pour l'application. Niveau Seconde : convolution par une matrice 3 × 3 écrite par l'élève (au bord de l'image, le pixel du bord remplace le voisin qui manque) ; détecteurs de Sobel (Irwin Sobel et Gary Feldman, 1968) et de Canny (John Canny, 1986), cités pour aller plus loin.
- L'atelier Python : l'interpréteur Python, son pilote pas à pas et son éditeur viennent de l'application « À la découverte de l'informatique » (ScolaTools) ; ils sont lus dans le dossier voisin informatique, sans être modifiés. Le module image (largeur, hauteur, lire_pixel, ecrire_pixel) est écrit pour cette application. La petite image est un carré de la photo du phare réduit à 16 × 16 ou à 64 × 64 pixels ; la photo est réduite à 320 × 240 pixels.
- Lire l'EXIF : le lecteur des métadonnées est écrit pour l'application, d'après la norme EXIF (CIPA DC-008), sans bibliothèque : segments du JPEG, en-tête TIFF dans les deux ordres des octets (II et MM), répertoires IFD0, Exif et GPS, chaque adresse vérifiée avant d'être suivie. Les photos d'exemple sont dessinées par l'application et enregistrées en JPEG par le navigateur ; leurs métadonnées sont écrites par l'application. Les appareils (Pixelia Neo 5, Obscura R7) et les personnes (Camille Exemple, Lou) sont inventés.
- L'enquête de localisation : Lou, son réseau social et la ville de Valbrume sont inventés ; Valbrume est placée en pleine mer, dans le golfe de Gascogne (vers 45,5° N et 3,5° O), pour que ses coordonnées ne désignent la maison de personne. Les trois photos de voyage montrent des lieux publics, à leur position arrondie à 0,0001° : la grande pyramide de Gizeh (29,9792° N, 31,1342° E), le pont du Golden Gate (37,8199° N, 122,4783° O) et l'opéra de Sydney (33,8568° S, 151,2153° E). Carte du monde en projection équirectangulaire, côtes de Natural Earth 1:110 m (domaine public), recopiées depuis « À la découverte du sol et des séismes » ; plan de Valbrume dessiné par l'application. Distances : un degré de latitude vaut environ 111 km, un degré de longitude environ 111 km × cos(latitude).
- Publie sans te faire localiser : la copie nettoyée est fabriquée dans le navigateur, sans réseau et sans réenregistrer l'image : les segments de métadonnées (EXIF, XMP, IPTC, images multiples, commentaires) et ce qui suit le marqueur de fin de l'image sont retirés ; les champs que l'élève garde sont réécrits dans un nouveau segment EXIF par le programme de l'application ; l'en-tête JFIF, le profil de couleurs et les segments qui décrivent l'image sont recopiés, et les données de l'image sont comparées octet par octet avec celles du fichier d'origine. La photo du goûter (chez Lou, rue des Tilleuls, à Valbrume), ses légendes et le réseau social sont inventés. Le téléchargement passe par une adresse du navigateur qui commence par blob:, sans réseau ; la copie s'appelle toujours « photo-nettoyee.jpg », car le nom d'origine d'une photo porte souvent sa date et son heure. Le vérificateur ne lit que les JPEG : d'un autre format (PNG, HEIC, WebP…), il ne garantit rien.
- Vraie ou retouchée ? : les sept images (le port, le parc, la boulangerie, la place de la mairie, le phare, le parc reçu par une messagerie, la soucoupe) sont dessinées par l'application, avec un grain de capteur tiré au hasard, puis enregistrées en JPEG par le navigateur (qualité 90 % pour l'appareil, 98 % pour celui du phare, 95 % après une retouche, 70 % pour la messagerie). L'analyse du niveau d'erreur de compression (méthode présentée par Neal Krawetz en 2007) réenregistre l'image à 90 %, mesure l'écart pixel par pixel, en fait la moyenne par blocs de 8 × 8 pixels et ne signale que les blocs qui ressortent dans une zone sans bord net : seuils choisis pour ces images, un indice et jamais une preuve. Le tampon de duplication, la comparaison de la vignette (case par case), la direction des ombres et les indices des métadonnées sont calculés par l'application ; le logiciel Retouchix et les appareils sont inventés.
- Brevet de la matrice : Bryce E. Bayer, « Color imaging array », brevet américain n° 3 971 065 (1976), domaine public ; la mosaïque est redessinée par l'application.
Programme
- Sciences numériques et technologie, classe de seconde : BO spécial n° 1 du 22 janvier 2019, thème « La photographie numérique » (et, pour les métadonnées, « Les données structurées et leur traitement » et « Localisation, cartographie et mobilité »).
- La révision du programme de SNT est engagée (application prévue à la rentrée 2027) : les correspondances seront à reprendre à sa parution.
Polices
- Bricolage Grotesque (Mathieu Triay) et IBM Plex Mono (IBM), licence SIL Open Font License 1.1, hébergées avec les applications (dossier polices/) : rien n'est chargé depuis Internet. Le texte courant utilise la police du système.
Vie privée
- Aucun compte, aucune donnée envoyée : le niveau choisi, les missions et les records des défis restent dans le navigateur de l'appareil. L'application fonctionne aussi sans ce stockage (navigation privée).
- Les programmes écrits dans l'atelier Python sont exécutés dans le navigateur et gardés sur l'appareil, comme les missions : rien n'est envoyé.
- Les photos que l'élève ouvre dans « Lire l'EXIF » sont lues dans le navigateur (FileReader) et ne quittent jamais l'appareil : aucune n'est envoyée, enregistrée ni gardée après la visite. La position d'une photo de l'élève reste masquée tant qu'il ne demande pas à la voir.
- Dans « Publie sans te faire localiser », la photo de l'élève est lue et nettoyée de la même façon, dans le navigateur ; la publication est simulée : rien n'est envoyé. La copie nettoyée n'est enregistrée sur l'appareil que si l'élève la télécharge.