31
Sciences Numériques et Technologie Livret « La photographie numérique » Soutien aux formations assurées dans l’Académie de Rouen en novembre/décembre 2019

Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences Numériques et Technologie

Livret « La photographie numérique »

Soutien aux formations assurées dans l’Académie de Rouen en novembre/décembre 2019

Page 2: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Préambule

Depuis la publication du Bulletin officiel spécial n°1 du 22 janvier 2019, l’enseignement de sciences numé-riques et technologie (SNT) est officiellement programmé pour la classe de seconde générale et technolo-gique dès la rentrée 2019. A destination des enseignants susceptibles d’enseigner cette nouvelle discipline,une formation de 4 journées a été prévue dans l’Académie de Rouen, répartie entre mai 2019 et dé-cembre 2019. Sous l’impulsion de plusieurs corps d’inspection, des professeurs de collèges et de lycées del’académie rouennaise se sont impliqués dans la conception de cette formation.

Ce livret regroupe une partie du contenu de cette formation. Ce document est donc destiné à des en-seignants et donne des pistes de réflexion, sans donner, pour autant, systématiquement, des activitésfournies clé en main. Ce recueil ne se veut pas être un modèle exclusif d’activités à mener avec ses élèvesmais est le fruit de travaux de professeurs, de disciplines variées, ayant réfléchi sur un thème particulier.La compilation de ces productions servira de support de travail lors des formations. Selon les sensibilités(matière d’origine, expertise dans un thème...) de chaque concepteur d’activités, les contenus sont d’uneapproche et d’un niveau différents. Le choix a été de conserver cette hétérogénéité car les enseignants,destinataires de cette formation, n’ont justement pas la même homogénéité de connaissances et ce livretespère, ainsi, satisfaire le plus grand nombre. Ce recueil conserve toutefois la perception officielle de cetenseignement : « L’enseignement de sciences numériques et technologie en classe de seconde a pour objetde permettre d’appréhender les principaux concepts des sciences numériques, mais également de permettreaux élèves, à partir d’un objet technologique, de comprendre le poids croissant du numérique et les enjeuxqui en découlent ». Il n’est donc pas question de trouver, ici, des activités expertes mais plutôt de quoienrichir la culture numérique de tous les élèves.

Dans le cadre de cet enseignement, sept thématiques sont au programme :• Internet• Le Web• Les réseaux sociaux• Les données structurées et leur traitement• Localisation, cartographie et mobilité• Informatique embarquée et objets connectés• La photographie numérique

Une thématique transversale est l’algorithmique par l’utilisation de Python. Pour plus d’informations à cesujet, le lecteur est invité à consulter le livret de formation sur Python que le pôle de compétences demathématiques de l’Académie de Rouen a créé pour les formations académiques 2018 dans le cadre desprogrammes de seconde.

Ce livret traite principalement du thème « La photographie numérique » même si par transversalité,d’autres thèmes pourront être abordés.

Ce recueil est téléchargeable sur le site académique de Rouen à l’adresse suivante :http://maths.spip.ac-rouen.fr/spip.php?article801.

Outre ce document, y sont entreposés des compléments comme des approfondissements, des corrections,des fichiers Python, une sitographie, certaines activités nationales... Notamment, tous les fichiers évoquésdans les activités de ce livret, suivis d’un astérisque (∗), seront téléchargeables sur le site académique deRouen à l’adresse ci-dessus.

2

Page 3: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Afin de faciliter l’usage de ce livret, sont listés ci-dessous, les contenus et capacités attendues dans leprogramme de SNT. Même si ce tableau est donné à titre indicatif et que ses informations sont reprises,adéquatement, dans chaque activité, il ne remplace pas le contenu explicite du programme de SNT.

Contenus Capacités attendues

Photosites, pixels, résolution(du capteur, de l’image), pro-fondeur de couleur

Distinguer les photosites du capteur et les pixels de l’image en com-parant les résolutions du capteur et de l’image selon les réglages del’appareil.

Métadonnées EXIF Retrouver les métadonnées d’une photographie.Traitement d’image Traiter par programme une image pour la transformer en agissant sur

les trois composantes de ses pixels.Rôle des algorithmes dans lesappareils photo numériques

Expliciter des algorithmes associés à la prise de vue.Identifier les étapes de la construction de l’image finale.

Exemples d’activités

• Programmer un algorithme de passage d’une image couleur à une image en niveaux de gris : parmoyenne des pixels RVB ou par changement de modèle de représentation (du RVB au TSL, mise dela saturation à zéro, retour au RVB).

• Programmer un algorithme de passage au négatif d’une image.• Programmer un algorithme d’extraction de contours par comparaison entre pixels voisins et utilisation

d’un seuil.• Utiliser un logiciel de retouche afin de modifier les courbes de luminosité, de contraste, de couleur

d’une photographie.

3

Page 4: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Table des matières

Coloration de pixels 5Fiche élève . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Fiche professeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Fusion d’images 10Fiche élève . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Fiche professeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Du capteur à l’image 16Fiche élève . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Fiche professeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Simulation de la vision des couleurs des daltoniens 21Fiche élève . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Fiche professeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Manipulation d’une image 8×8 sur Raspberry Pi et Sense Hat 26Fiche élève . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Fiche professeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Synthèse du contenu des activités 31

4

Page 5: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Alexis Lecomte (d’après Gilles Lassus de Bordeaux)

La photographie

numérique

Coloration de pixels Fiche élève

Première partie : Notion d’image numérique

Voici un écran d’iPhone 5s zoomé à la loupe binoculaire.Chaque pixel (contraction de picture element) peut donc se décompo-ser en trois sous-pixels de couleur rouge, verte ou bleue.

Grâce au site http://physique.ostralo.net/images, dans l’onglet « Les couleurs d’une image » , observercomment le réglage de l’intensité des 3 sous-pixels rouge, vert et bleu peut générer une multitude decouleurs.La perception « uniforme » pour l’œil, qui ne distingue pas (sauf à la loupe) le détail des sous-pixels maissimplement une couleur globale, est due au pouvoir de résolution limité de l’œil humain.

Sachant que chaque sous-pixel (rouge, vert ou bleu) possède 256 nuances possibles (codée chacune de 0à 255), combien de couleurs différentes peuvent être générées par ces 3 sous-pixels ?

Deuxième partie : Avec votre smartphone

On peut constater des différences dans l’agencement ou la forme des pixels (et sous-pixels), suivant lemodèle de smartphone observé :

5

Page 6: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Deux notions (très souvent confondues) sont à connaître :• Définition d’un écran : c’est le nombre de pixels qui composent l’écran. Attention, on ne parle pas ici

des sous-pixels rouge, vert, bleu, mais bien du pixel global créé par la réunion de ces trois sous-pixels.Cette définition est par exemple donnée sous la forme 1920 × 1080.

1920 pixels

1080 pixels

Cela signifie que l’écran comporte 2 073 600 (= 1920 × 1080) pixelsrépartis uniformément sur toute sa surface. On dit que 1920 × 1080est la définition native de l’écran. Lorsque dans les réglages de votreordinateur, on vous propose de changer la « résolution » (confusion devocabulaire !), en la baissant par exemple à 1280 × 720, les 2 073 600pixels de cet écran restent bien présents mais se regroupent pour si-muler un écran comportant moins de pixels : la qualité d’affichage setrouve alors dégradée.

• Résolution d’un écran, généralement exprimée en dpi (dot per inch) ou ppi (pixel per inch) : ellemesure donc le nombre de pixels disponibles sur une longueur de 1 pouce, soit environ 2,54 cm. Plusce nombre est élevé, plus la taille des pixels est réduite, et plus l’image paraît donc précise.

La confusion entre ces deux notions est due, notamment, à leur traduction anglaise. « Définition » esttraduit par « display resolution » alors que « résolution » est traduit par « pixel density ». On voit bienl’apparition du faux-ami « resolution/résolution ».

1. Rechercher la définition de votre écran de smartphone.2. Mesurer la largeur de l’écran de votre téléphone, et convertir cette mesure en pouces.3. Calculer alors la résolution de votre écran (exprimée en pixels par pouce). Vous pouvez comparer votre

mesure avec les renseignements trouvés dans les spécifications de votre téléphone.Vous pouvez aussi vérifier vos calculs grâce au site http://www.pxcalc.com/.

4. Un téléviseur UltraHD possède un écran dont la définition est égale à 3840 × 2160 pixels. Voici sesspécifications :

• Le constructeur a-t-il respecté les définitions des deux no-tions vues ci-dessus ?

• Sachant qu’une taille d’écran de 55 pouces (la longueurde sa diagonale) signifie que sa largeur mesure environ 48pouces, et sa hauteur 27 pouces, calculer la résolution decet écran de télévision.

• Comparer avec les résolutions de vos écrans de téléphonecalculées à la question 3.

• Pourquoi les fabricants de téléviseurs ne font-ils pas de la résolution de leurs écrans un argumentpublicitaire ?

6

Page 7: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Troisième partie : Usage de Python pour créer une image

Sur un écran d’ordinateur (ou de smartphone, de calculatrice...), chaque pixel est repéré par deux coor-données, le pixel de coordonnées (0,0) étant le pixel en haut à gauche de l’écran, celui de coordonnées(1,0) le deuxième pixel de la première ligne, etc.

Voici comment on pourrait représenter par exemple un écran de 64 pixels :

Créer un nouveau programme Python et recopier ces deux lignes :

from PIL import Image

img = Image.new("RGB", (8,8))

La première ligne permet de charger la librairie Image et la seconde de créer une image de 64 pixels (pourl’instant, tous de couleur noire).

Ajouter la ligne ci-dessous qui permet de colorer le pixel en haut à gauche (de coordonnées (0,0)) en rouge(on précise, en effet, que le sous-pixel rouge est à 255, le vert à 0 et le bleu à 0).

img.putpixel((0,0),(255,0,0))

Ajouter enfin cette ligne ci-dessous pour visualiser l’image (ne pas hésiter à zoomer pour bien voir le pixelrouge).

img.show()

Réaliser les étapes suivantes (à faire valider par l’enseignant une par une) :1. Modifier le programme pour colorer en rouge uniquement le deuxième pixel de la première ligne puis

uniquement le troisième.2. Modifier le programme pour colorer en rouge toute la première ligne. La méthode trouvée est-elle la

plus concise ?3. Modifier à nouveau le programme pour colorer en rouge uniquement la deuxième ligne, puis uniquement

la troisième ligne.4. Trouver comment colorer en rouge toutes les lignes de l’image, de la façon la plus simple possible.5. Afin de pouvoir facilement changer de couleur, créer une fonction creation_image utilisant un pa-

ramètre nommé couleur qui contiendra le code actuel du programme (uniquement la première lignefigure ci-dessous).

def creation_image(couleur) :

img = Image.new("RGB", (8,8))

Une fois le code exécuté, l’appel en console de creation_image((255,0,0)) devra afficher une imagerouge mais creation_image((0,255,0) devra afficher une image verte.

6. Ajouter deux paramètres à la fonction, longueur et largeur, pour pouvoir changer le nombre depixels à la demande.

7. Pour aller plus loin : réaliser une image avec un dégradé.

7

Page 8: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Alexis Lecomte (d’après Gilles Lassus de Bordeaux)

La photographie

numérique

Coloration de pixels Fiche professeur

Contenus et capacités

Contenus Capacités attendues

Photosites, pixels, résolution (du capteur,de l’image), profondeur de couleur

Distinguer les photosites du capteur et les pixels de l’imageen comparant les résolutions du capteur et de l’image selonles réglages de l’appareil.

Traitement d’image Traiter par programme une image pour la transformer enagissant sur les trois composantes de ses pixels.

Modalités

Une séance de 1h30 en salle informatique.

Descriptif

Les deux premières parties sont issues d’un travail de Gilles Lassus de l’Académie de Bordeaux et permettentd’introduire la notion d’image numérique et d’insister sur la différence entre définition et résolution d’unécran.La dernière partie permet d’introduire le travail sur le traitement d’image grâce à Python, tout en travaillantprogressivement la notion de boucle Pour (avec l’imbrication de deux boucles pour parcourir une image).On peut d’ailleurs insister sur l’intérêt des boucles en variant la définition de l’image (1920×1080 plutôtque 8×8...).

Quelques éléments de correction

La fonction Python de la question 6 pourrait mener à ce résultat :

def creation_image (couleur, longueur, largeur):

img = Image.new("RGB", (longueur, largeur))

for abscisse in range(longueur):

for ordonnee in range(largeur):

img.putpixel((abscisse, ordonnee), couleur)

img.show()

Et l’appel de la fonction pourrait alors se faire de la façon suivante :

creation_image((255,0, 255), 300, 200)

8

Page 9: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

La fonction Python de la question 7, plus compliquée, permettra d’occuper d’éventuels élèves ayant terminéavant les autres. On peut, alors, envisager ce genre de dégradé (vertical) :

def creation_image (couleur1, couleur2, longueur, largeur):

img = Image.new("RGB", (longueur, largeur))

for abscisse in range(longueur):

for ord in range(largeur):

R=((largeur-ord)*couleur1[0]+ord*couleur2[0])//largeur

V=((largeur-ord)*couleur1[1]+ord*couleur2[1])//largeur

B=((largeur-ord)*couleur1[2]+ord*couleur2[2])//largeur

img.putpixel((abscisse, ord), (R,V,B))

Et l’appel de la fonction pourrait alors se faire de la façon suivante :

creation_image((255,0,0),(0,255,0), 300,200)

9

Page 10: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Gilles Lassus de Bordeaux (modifié par Alexis Lecomte)

La photographie

numérique

Fusion d’images Fiche élève

Première partie : Notion de photographie numérique

L’étude matérielle de la composition des écrans nous a permis lors de l’activité précédente (Coloration depixels) de créer une image en spécifiant (grâce au langage Python dans notre cas) la valeur de chacun deses pixels.

Mais l’ambition d’une photographie est autre : il s’agit de capturer puis retranscrire le plus fidèlementpossible l’image formée sur notre rétine par la lumière extérieure.

À l’époque de la photographie argentique, des réactions chimiques successives permettaient de fixer surdu papier la lumière capturée par l’objectif de l’appareil photo.

La photographie numérique consiste à convertir en signaux numériques cette lumière capturée par l’objectif.

Comme découvert lors de la séance sur la création d’image, le principe physique de fonctionnement d’unécran impose qu’il reçoive une information décomposée en niveaux de rouge, de vert et de bleu. Leprocédé technique fondamental de la photographie numérique est donc la décomposition de la lumièrevisible suivant ces trois composantes : c’est le rôle de la matrice de Bayer.

La lumière extérieure, après avoir été fil-trée (filtres InfraRouge et Anti-Aliasing),va être concentrée par des microlentillesavant de passer dans la matrice de Bayer.

Le rôle de la matrice de Bayer est de séparer la lumière, en laissant passer sa composante rouge, verte,ou bleue. À noter que la composante verte est deux fois plus représentée que les autres couleurs. Cela estdû au fait que l’œil humain est naturellement plus sensible au vert qu’aux autres couleurs. Il faut doncartificiellement favoriser la lumière verte lors de sa captation.

Sous cette matrice de Bayer se situent les photosites, qui vont convertir la lumière reçue (donc rouge,verte ou bleue) en signal électrique, plus ou moins important suivant la puissance de la lumière.

Cette conversion de l’information lumineuse en information électrique est l’étape essentielle de la prised’une photographie numérique.

10

Page 11: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Àre

teni

rLes photosites jouent un rôle dans la captation de la lumière, à l’intérieur du capteurde l’appareil photo numérique, alors que les pixels de l’écran servent à reproduire cettelumière.

Lorsque les fabricants d’appareil photo ou de smartphones communiquent sur le nombre de mégapixels, ilsfont référence à la définition maximale (en nombre de pixels) que pourra avoir l’image, une fois affichée.Ce nombre de mégapixels n’est pas égal au nombre de photosites. En effet, des procédés algorithmiquespermettent maintenant de deviner de nouveaux pixels (on parle d’interpolation) non captés par les pho-tosites.

Deuxième partie : Les métadonnées d’une photo numérique

Certaines photos numériques contiennent des métadonnées normalisées suivant le format EXIF : EXchan-geable Image file Format.

1. Grâce à l’outil en ligne http://exif.regex.info/exif.cgi,explorer les métadonnées de l’imageex_act_EXIF.jpg∗ ci-contre.

2. Avec quel matériel photo a-t-elle été prise ?Quel jour ?

3. Pouvez-vous localiser l’endroit où cette photo a étéprise ?

4. Voici une image∗ de la Statue de la Liberté.D’après vous, où cette photo a-t-elle été prise ?

5. Vérifier à l’aide de l’outil en ligne précédent.Vous pourrez utiliser le site https://www.geoportail.gouv.fr/et copier-coller la latitude et la longitude dans lechamp de recherche.

Troisième partie : Modification d’image sous Python

Voici deux images∗ de même dimension : 300 × 200.

L’objectif à atteindre à partir de ces deux images est simple à deviner : inclure Pikachu dans le paysage.Après les avoir téléchargées dans un même dossier, créer, dans ce dossier, un fichier Python nommédetourage.py.

11

Page 12: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

A l’aide du code ci-dessous, on commence par charger la librairie Image, puis on créé une variable img1

qui va contenir les informations des pixels de la première image :

from PIL import Image

img1 = Image.open("surprised_pika.bmp")

A l’aide d’une commande similaire, créer une variable img2 contenant les informations des pixels de laseconde image.

On va récupérer les informations des composantes R,V,B de chaque pixel à l’aide de la méthode getpixel.Recopier, par exemple, les deux lignes suivantes et observer le contenu de la variable p.

p = img1.getpixel((0,0))

print(p)

En s’inspirant si besoin du programme déjà réalisé lors de l’activité précédente (Coloration de pixels) surla création d’image, créer une variable img3 dont les dimensions sont les mêmes que les deux imagesfournies.

Après avoir réfléchi au principe, écrire un programme qui permet d’obtenir Pikachu avec le paysage enfond. On terminera le code en demandant la visualisation avec img3.show().

Améliorations :1. Créer un autre fichier nommé, par exemple, surprised_pika_magenta.bmp∗ en modifiant simplement

le fond vert par un fond magenta. Cette création pourra se faire à l’aide de Gimp, par exemple.Modifier alors votre code pour que le résultat soit identique.Créer ensuite une fonction avec un paramètre couleur que l’on pourra utiliser suivant le fichier choisi.

2. Des logiciels permettent de détourer avec un fond uni autre que vert, sans avoir à préciser cette couleurde fond. Décrire un principe permettant d’obtenir ce résultat avec les deux images précédemmentutilisées.

3. Le détourage initial du fond vert était-il satisfaisant ? Modifier votre programme initial pour améliorerce résultat.

4. Pourquoi, d’après vous, le fond vert est-il le plus fréquemment utilisé ?

12

Page 13: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Gilles Lassus de Bordeaux (modifié par Alexis Lecomte)

La photographie

numérique

Fusion d’images Fiche professeur

Contenus et capacités

Contenus Capacités attendues

Métadonnées EXIF Retrouver les métadonnées d’une photographie.

Traitement d’image Traiter par programme une image pour la transformer enagissant sur les trois composantes de ses pixels.

Modalités

Une séance de 1h30 en salle informatique (nécessaire pour la dernière partie).

Descriptif

Cette fiche est la suite naturelle de l’activité précédente (Coloration de pixels). Elle reprend une partie dutrès bon travail réalisé par Gilles Lassus de l’Académie de Bordeaux. Seule la dernière partie est légèrementmodifiée, pour proposer une formulation ouverte.La difficulté de celle-ci, en terme de maîtrise du langage Python, évoque plutôt une utilisation en find’année scolaire.Concernant le programme Python, on peut attendre la version suivante (avec plus ou moins d’aide).

from PIL import Image

img1 = Image.open("surprised_pika.bmp")

img2 = Image.open("paysage.jpg")

img3 = Image.new("RGB", (300,200))

p = img1.getpixel((0, 0))

print(p)

for x in range(300):

for y in range(200):

p=img1.getpixel((x,y))

if p == (0,255,0):

p2=img2.getpixel((x,y))

img3.putpixel((x,y),p2)

else:

img3.putpixel((x,y),p)

img3.show()

13

Page 14: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Attention, ce script peut échouer si l’image n’a pas les dimensions précisées (300×200). Il est bon de vérifierles dimensions de l’image img1, avant de commencer, par la commande suivante : print(im1.size)).

La première amélioration permet d’obtenir une fonction et de préparer la question suivante.Le code pouvant être obtenu est le suivant :

from PIL import Image

img1 = Image.open("surprised_pika_magenta.bmp")

img2 = Image.open("paysage.jpg")

img3 = Image.new("RGB", (300,200))

def detourage(couleur):

for x in range(300):

for y in range(200):

p=img1.getpixel((x,y))

if p == couleur:

p2=img2.getpixel((x,y))

img3.putpixel((x,y),p2)

else:

img3.putpixel((x,y),p)

img3.show()

detourage((255,0,255))

Pour la deuxième amélioration, on peut évoquer la possibilité de prendre la couleur du pixel de coordonnées(0,0) et de tester le code avec surprised_pika.bmp∗ et surprised_pika_magenta.bmp∗ .Il suffit de remplacer la dernière ligne par :

couleur_fond = img1.getpixel((0,0))

detourage(couleur_fond)

La troisième amélioration porte sur le détourage qui n’est pas assez précis, ceci venant des pixels vertsdont le code RVB n’est pas exactement (0, 255, 0).

Cette notion d’imprécision est importante en informatique, notamment lors de tests d’égalités entrenombres non entiers : à l’aide d’une console Python, on peut vérifier, par exemple, que le test 0.1+0.2==0.3

est faux ; ceci est dû à la représentation non exacte des nombres réels en machine.Sans entrer dans les détails (ces considérations relevant du programme de spécialité NSI), l’idée, ici, estglobalement la même, nous souhaitons que les pixels "presque verts" ne soient pas affichés.En tâtonnant un peu, le code suivant permet d’obtenir un meilleur résultat même s’il n’est pas parfait.

from PIL import Image

img1 = Image.open("surprised_pika.bmp")

img2 = Image.open("paysage.jpg")

img3 = Image.new("RGB", (300,200))

for x in range(300):

for y in range(200):

p=img1.getpixel((x,y))

14

Page 15: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

if p[0]<30 and p[1]>220 and p[2]<30:

p2 = img2.getpixel((x, y))

img3.putpixel((x, y), p2)

else:

img3.putpixel((x, y), p)

img3.show()

On peut également penser à ouvrir le fichier surprised_pika.bmp avec un logiciel de retouche d’imagescomme Gimp et utiliser la pipette pour lister toutes les couleurs vertes non désirées. Cependant, cetteméthode - même si elle permet d’obtenir un résultat visuellement satisfaisant - se révèle longue car il y aun nombre important de pixels verts de teintes différentes. De plus, elle n’est pas transférable à une autreimage.

On peut ensuite évoquer avec les élèves que l’idéal serait d’avoir un algorithme de détection de contoursqui permettrait de déterminer si un pixel fait partie du contour de notre forme (sans entrer dans les détails,on peut expliquer que cela se base sur une comparaison entre le pixel et ses pixels voisins).

Concernant la dernière question, on peut mentionner que le fond vert est communément utilisé (pour lamétéo, et, de manière générale, les effets visuels dans les films) car cette couleur s’éloigne de toute couleurde peau et permet un contraste net entre le fond à supprimer et l’élément à détourer. Comme mentionnédans la deuxième question, des logiciels permettent de détourer avec une autre couleur de fond, mais latolérance est alors à régler finement pour ne pas supprimer des pixels de la partie de l’image à conserver.

Enfin, les techniques d’apprentissage étant couramment évoquées dans l’actualité (souvent nomméesintelligence artificielle...), on peut également en discuter en montrant le site https://www.remove.bg/.Celui-ci est capable d’appliquer automatiquement un algorithme de détourage sur toute photo présentantun humain ou un animal, le fond n’étant pas forcément uni.

15

Page 16: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Laurent Cournil

La photographie

numérique

Du capteur à l’image Fiche élève

Partie A — Capteur photo et définition

Capteur d’appareil photo numérique

Un capteur d’appareil photo est essentiellement une grille rectangulaire for-mée de photosites, qui transforment la lumière reçue en un signal électrique.Dans cette activité, nous considérerons que sur l’image produite, chaquephotosite correspond à un pixel : aucun traitement de l’image ne cherche àdeviner des pixels supplémentaires.

Le nombre de photosites de la grille constitue la définition du capteur. Ainsi,sur une webcam basique, le capteur est une grille de 640 × 480 photosites,ce qui donne . . . . . . . . . . . . . pixels sur l’image produite.

Ci-contre, un capteur d’un appareil photo compact, 12 millions de pixels(photo Wikimedia Commons).

Compléter le tableau ci-dessous.

Type / ExempleFormat

Définition en pho-tosites : largeur enpixels, hauteur enpixels, nombre totalen mégapixels (MP)

Largeur ducapteur(mm)

Hauteur ducapteur(mm)

Largeurd’un

photosite(µm)

Smartphone 1080P 1920 1080 1,5

Olympus OM-D 4/3 4640 3442 16 17,3 13

Nikon D7200 APS-C 24 23,7 15,8

Sony A7 Plein format 6000 4000 24 36 24

Remarque : le nombre de photosites n’est pas le seul paramètre pour la qualité d’une image. Pour desraisons d’optique, leur taille importe aussi : un grand photosite reçoit mieux la lumière.Ainsi, à définitions égales (24 MP), mieux vaut un capteur plein format qu’un APS-C.

16

Page 17: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Partie B — Image produite et résolution

Résolution d’une imageUne image numérique peut être affichée sur différents supports : un écran d’ordinateur, un tiragepapier, une affiche. . .Sa résolution est le nombre de pixels affichés par unité de longueur, en ppp (points par pouce) oudpi (dots per inch). Un pouce mesure 2,54 cm.

Exemples• Un écran d’ordinateur possède, en général, une résolution de 72 ou 96 ppp (voir

ci-contre).

• Pour qu’une image imprimée n’apparaisse pas « pixellisée », on estime que sa ré-solution doit être de 300 ppp.

• À une distance de 5 mètres, l’oeil humain perçoit une résolution maximale de 15ppp : une affiche n’a pas besoin d’une grande résolution.

1 pouce

96 pixels

Questions

1. Un appareil photo possède une définition de 3968 × 2976 pixels.

J’affiche une de ses photos sur mon écran, qui possède une dé-finition de 1920 × 1080 pixels. Le mode d’affichage est « pleinécran », et l’affichage présente deux bandes noires verticales depart et d’autre de l’image (voir ci-contre).

1920 pixels

1080

pixe

lsLe coefficient d’agrandissement de l’image affichée par rapport à l’image produite est :

Largeur (ou hauteur) de l’image affichée, en pixelsLargeur (ou hauteur) de l’image d’origine, en pixels

Déterminer le coefficient d’agrandissement de la photo par rapport à l’écran.

2. Je choisis d’afficher la photo avec un coefficient d’agrandissement 1, toujours en plein écran.Calculer la surface totale de l’écran (unité : pixels au carré) et la surface totale de l’image d’origine.Déterminer alors quelle fraction de la surface totale de la photo est visible.

3. Je veux imprimer ma photo, de sorte que le tirage soit de qualité correcte (voir les exemples plus haut).Déterminer les dimensions de la photo imprimée, en pouces puis en centimètres.

4. En réalité, seule une partie de la photo m’intéresse.Je suis intéressé par un tirage papier de 15 cm sur 10 cm, toujours de qualité correcte.Déterminer les dimensions maximales de la partie de la photo que je pourrai imprimer, en pixels.

17

Page 18: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Partie C — Application : un microscope miniature

En optique, deux lentilles iden-tiques placées idéalement l’uneen face de l’autre permettentde reproduire un objet àl’échelle 1 :

• l’objet est situé dans le planfocal de la première lentille ;

• il est reproduit dans le planfocal image de la deuxièmelentille.

+F1

+F

1

+F

2

+F2

Lentille 1 Lentille 2

Objet dans le

plan focal de la

lentille 1

Image de l’ob-

jet, dans le plan

focal de la len-

tille 2

Rayon lumineux passant

par la base de l’objet

Rayon lumineux passant

par le sommet de l’objet

Dans le plan focal image de la deuxième lentille, onplace un capteur photo : par exemple celui d’une web-cam d’ordinateur, de dimensions 3, 2 × 2, 4 mm, etde définition 1600 × 1200 pixels.

Dans le plan focal de la première lentille, on place unobjet à étudier : par exemple une lame de microscopesur laquelle est disposée une coupe de poil absorbantde racine.

L’image obtenue est reproduite ci-contre.

1. Déterminer la largeur d’un photosite du capteur.Cette dimension représente la limite de résolution du dispositif : les objets de taille inférieure ne sontpas discernables.

2. Mon écran d’ordinateur a une résolution de 96 ppp.Déterminer les dimensions de l’image sur l’écran (en cm). On ne tient pas compte d’un éventueldébordement.

3. a) L’image d’origine a exactement les dimensions du capteur.Les dimensions de l’image affichée ont été calculées dans la question précédente.Déterminer le grossissement de l’image, toujours sans tenir compte d’un éventuel débordement :

Largeur (ou hauteur) de l’image affichée, en millimètresLargeur (ou hauteur) de l’image d’origine, en millimètres

b) Préciser ce que serait ce grossissement avec un capteur de résolution 2592 × 1944, et de dimensions3, 76 × 2, 74 mm (capteur de caméra 5 MP de Raspberry Pi, photosites de 1,4 µm).

18

Page 19: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Laurent Cournil

La photographie

numérique

Du capteur à l’image Fiche professeur

Contenus et capacités

Photosites, pixels, résolution (du capteur,de l’image), profondeur de couleur

Distinguer les photosites du capteur et les pixels de l’imageen comparant les résolutions du capteur et de l’image selonles réglages de l’appareil

Modalités et enjeux

Séance d’une heure en classe entière, mode débranché.Cela n’empêche pas de réaliser les calculs à l’aide d’un tableur.Un compte-rendu peut être demandé en fin de séance.

L’ensemble de l’activité a pour but d’arriver à la partie C, où l’on retrouve les photosites de la partie A :ils permettent de parler de la résolution micrométrique du « microscope », et de réaliser qu’une image nepeut montrer des détails de dimensions inférieures à celles d’une photosite.

Aide à la correction

Partie A

TypeDéfinition en photosites : lar-geur en pixels, hauteur en pixels,nombre total en mégapixels

Largeur ducapteur(mm)

Hauteur ducapteur(mm)

Largeurd’un

photosite(µm)

Smartphone 1920 1080 1920 × 1080 × 10−6 1920×1, 5×10−3 1080×1, 5×10−3 1, 5

Partie B

1. Coefficient d’agrandissement, calculé avec les hauteurs des images, en pixels :1080

2976.

2. Fraction de la surface de la photo visible :1920 × 1080

3968 × 2976.

3. Largeur de l’image imprimée (faire un calcul similaire pour la hauteur) :3968

300≈ 13, 23 pouces, soit 33, 6 cm.

4. Calcul sur la largeur de la photo.15 cm font 5, 9 pouces, à 300 ppp : 1770 pixels (valeur approchée).

Partie C

1. Largeur d’un photosite : voir méthode partie A.

19

Page 20: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

2. Largeur de l’image sur écran :1600

96pouces, à convertir en cm.

Calcul similaire pour la hauteur.

3.Largeur obtenue à la question précédente, convertie en mm

3, 2.

4. Reprendre les calculs avec 2592 pixels à la place de 1600 pixels, et une largeur d’origine de 3, 76 mmà la place de 3, 2 mm.

Inspiration et esprit

Ce qui suit ne concerne en rien les élèves : il s’agit juste de montrer le dispositif ayant produit la photode la partie C. Des professeurs de SVT pourraient être intéressés, ou des professeurs de technologie pour

un TP en série STI2D.

L’activité est inspirée d’un article de Jean-MichelCourty et Édouard Kierlik dans le magazine Pour laScience, septembre 2018 : Faire d’un smartphone unmicroscope performant. Le schéma en est présentéci-contre.Un prototype simplifié d’un tel microscope, sanssmartphone et fonctionnant en USB, a été réalisé parl’auteur de ces lignes, à l’aide de deux webcams ré-cupérées sur des ordinateurs portables. Ce dispositifa été utilisé pour prendre la photo de la partie C.

Une webcam démontée : le capteur est au centre, lalentille en-dessous. Le quadrillage donne une idée de

l’échelle.

Corps de l’ap-pareil (smart-phone...)

Capteur del’appareil photo

Lame portant la prépa-ration à photographier

Dispositif porte-lame

Deux lentillesidentiques

20

Page 21: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Gwendal Jugand

La photographie

numérique

Simulation de la vision des

couleurs des daltoniens

Fiche élève

Cette activité consiste d’abord à apprendre à modifier des couleurs d’une image grâce à Python puis àappliquer ces connaissances pour simuler la vision des couleurs des daltoniens.

A. Modification des couleurs avec Python dans JupyterLab de l’ENT

Construction d’un algorithme de filtrage d’une image

Va suivre une série d’instructions commentées pour aboutir à la modification des couleurs d’une image. Ilsuffira de recopier ces instructions pour aboutir à un algorithme.

Étape 1 : On utilise 2 bibliothèques (ou librairies, mot mal traduit de l’anglais library) pour manipuler lesfichiers et les images.• PIL est la bibliothèque regroupant des fonctions concernant la manipulation d’images.• NEROFS est la bibliothèque regroupant des fonctions concernant la manipulation des fichiers sur

l’ENT.

from PIL import Image

from nerofs import NEROFS

Étape 2 : On crée un objet nerofs permettant la manipulation (chargement, enregistrement) des fichiers dansJupyterLab. Cette étape est vraiment propre à JupyterLab.

nerofs = NEROFS("")

Étape 3 : On charge un fichier image TestDaltonien.jpg∗ dans un objet fichier_image.Puis on crée un objet image_originale à partir du fichier d’origine.

fichier_image = nerofs.open("TestDaltonien.jpg", "rb")

# Le fichier et le notebook doivent être à la racine du dossier utilisateur.

image_originale = Image.open(fichier_image)

À partir de là, l’image originale est manipulable par les fonctions de la bibliothèque PIL :• copy permet de faire une copie de travail de l’image.• load permet d’obtenir une matrice des points de l’image avec pour chaque point un triplet

contenant les composantes RVB.• size permet d’obtenir un couple (largeur, hauteur) de l’image.

Étape 4 : On crée une fonction niveauDeGris qui filtre l’image.Pour cette fonction, l’algorithme de traitement de l’image est le suivant :

Pour chaque pixel,récupérer dans 3 variables, les composantes RVB,calculer le niveau de gris en fonction des composantes RVB,remplacer les valeurs RVB par le niveau de gris.

Renvoyer l’image modifiée.

21

Page 22: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

def niveauDeGris (image) :

image_locale = image.copy() # copie de l’image originale

matrice_pixels = image_locale.load()

largeur, hauteur = image_locale.size

for colonne in range(largeur) :

for ligne in range(hauteur) :

R, G, B = matrice_pixels[colonne,ligne]

Gris = int(0.3*R + 0.59*G + 0.11*B)

matrice_pixels[colonne,ligne] = (Gris, Gris, Gris)

return image_locale

Étape 5 : Ensuite, il suffit d’appeler l’image originale pour l’afficher.

image_originale

Étape 6 : Et finalement, on appelle l’image modifiée par le filtre niveauDeGris qui prend en paramètre l’imageoriginale et renvoie l’image filtrée.

niveauDeGris(image_originale)

Application : Modification de l’algorithme précédent de filtrage d’une image

1. Compléter la formule du filtre suivant de façon à obtenir la moyenne des composantes RGB sur unpixel.

def niveauDeGrisMoyen (image) :

image_locale = image.copy() # copie de l’image originale

matrice_pixels = image_locale.load()

largeur, hauteur = image_locale.size

for colonne in range(largeur) :

for ligne in range(hauteur) :

R, G, B = matrice_pixels[colonne,ligne]

Gris = ..........................................

matrice_pixels[colonne,ligne] = (Gris, Gris, Gris)

return image_locale

2. Écrire ci-dessous la ligne de code permettant d’afficher l’image modifiée par le filtre niveauDeGrisMoyen.

.........................................

B. Simulation de la vision des couleurs des daltoniens

Principe général

Le daltonisme (ou dyschromatopsie) est une anomalie de la vision affectant la perception des couleurs.D’origine généralement génétique, elle a alors pour cause une déficience d’un (ou plusieurs) des trois typesde cônes de la rétine oculaire.Il existe plusieurs formes de dyschromatopsie partielle, la plus fréquente étant la confusion du vert et durouge. Les autres formes de daltonisme sont nettement plus rares, comme la confusion du bleu et du

22

Page 23: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

jaune, la plus rare de toutes étant la déficience totale de la perception des couleurs (achromatopsie), oùle sujet ne perçoit que des nuances de gris. (source : https://fr.wikipedia.org/wiki/Daltonisme)

On va simuler les 4 principales formes de daltonisme :• Achromatopsie : Pas de couleur, vision en niveaux de gris.• Deutéranopie : Pas de composante G qui est remplacée par la composante R.• Protanopie : Pas de composante R qui est remplacée par la composante G.• Deutéranomalie : Atténuation de la perception de la composante G (ici, on fixera à 30% l’atténuation).

Application : Création de filtres sous Python simulant le daltonisme

Effectuer l’ensemble des actions suivantes. Il n’est pas conseillé de tout faire d’un coup mais de commencerpar un premier filtre, puis un deuxième, puis... de façon à s’assurer qu’il n’y ait pas d’erreur.

Actions à mener.• Créer 4 filtres (un pour chaque forme de daltonisme) sachant que le premier devrait être très rapide.• Appliquer et afficher les 4 filtres sur l’image originale.

Pour aller plus loin.• Appliquer chacun de ces 4 filtres à différentes images.• Réaliser un compte-rendu de votre travail.

23

Page 24: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Gwendal Jugand

La photographie

numérique

Simulation de la vision des

couleurs des daltoniens

Fiche professeur

Contenus et capacités

Contenus Capacités attendues

Traitement d’image Traiter par programme une image pour la transformer enagissant sur les trois composantes de ses pixels.

Modalités

• Avec ordinateur, individuellement (dans l’idéal) ou par groupes de 2.• Une séance de 1h30 en salle informatique.• Les travaux sont à faire en totalité et la validation par le professeur des étapes-clefs permet de ne pas

rester bloqué. Un compte-rendu peut être rédigé au fur et à mesure de l’avancement des travaux etpourrait être rendu à la fin de la séance.

Descriptif

L’idée est de programmer un algorithme permettant de simuler la vision d’un daltonien en modifiant lescomposantes RVB d’une image couleur. Le rendu donne une idée (proche mais non réelle) de ce quevoit la personne atteinte de cette anomalie de la perception des couleurs. La progression proposée est lasuivante :1. Mise en œuvre d’un filtre en « niveau de gris » permettant d’utiliser un code donné comme ressource et

permettant de cerner la partie intéressante du code. Les valeurs proposées dans l’activité élève (0.3 ;

0.59 ; 0.11) sont les valeurs habituelles pour passer une image couleur en image « noir et blanc »,en niveau de gris par la luminance. L’oeil humain voit beaucoup mieux le vert que le bleu... Voir plusd’informations (en anglais) à ce sujet sur https://www.scantips.com/lumin.html.

2. Modifier le code pour créer un nouveau filtre permettant une image en niveaux de gris « moyen » quiutilise la moyenne des coefficients RVB.

3. Création de 3 filtres permettant de générer les images simulant 4 formes de daltonismes (« Achroma-topsie », « Deutéranopie », « Protanopie », « Deutéranomalie ») en modifiant les composantes RVB del’image originale.

4. Création d’un compte-rendu à remettre en fin de séance.

Pré-requis

• Les fonctions avec paramètres, en Python• Image matricielle (tableau de pixels)• Composantes RVB

24

Page 25: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Environnement logiciel

L’activité est prévue pour un déroulement sur JupyterLab de l’ENT des lycées de la Région académiqueNormandie. Elle peut cependant être modifiée pour utiliser d’autres environnements (IDLE, Notepad++,EduPython, Spyder...) en aménageant le contenu (ainsi, la référence à la bibliothèque NEROFS ne seraitplus nécessaire mais l’utilisation de show() le serait).

Pour aller plus loin

On peut proposer une solution élégante pour comparer l’image originale avec l’image modifiée en les« collant » l’une à coté de l’autre. L’activité proposée n’utilise pas cette possibilité mais le code estdisponible ci-dessous.

def collage(image1,image2):

l1,h1 = image1.size

l2,h2 = image2.size

l = max(l1,l2)

img_double = Image.new("RGB",(l,h1+h2))

img_double.paste(image1,(0,0))

img_double.paste(image2,(0,h1))

return img_double

def aff_comparatif(fichier_img):

f = nerofs.open(fichier_img,"rb")

image1 = Image.open(f)

image2 = niveauDeGris(image1)

img_comp = collage(image1,image2)

image1.close()

image2.close()

return img_comp

aff_comparatif("Fraises.JPG") # affiche l’image

25

Page 26: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Laurent Cournil

La photographie

numérique

Informatique

embarquée et

objets connectés

Manipulation d’une image

8×8 sur Raspberry Pi et Sense

Hat

Fiche élève

Un afficheur d’image élémentaire : le Sense Hat

Le Raspberry Pi est un nano-ordinateur qui peut être associé à une extension, le Sense Hat (échelle 1/2,ci-dessus). Ce dernier dispose d’une grille de 64 LEDs permettant d’afficher une image 8×8. L’allumagede ces LEDs se programme en Python.

Il existe des émulateurs du Sense Hat. Pourcette activité, on utilisera un émulateur enligne :

https://trinket.io/sense-hat

La forme du Sense Hat peut être changée parun bouton en bas à droite.

La bibliothèque Python permettant de programmer le SenseHat s’appelle : sense_hat.Tout programme Python visant à programmer un vrai SenseHat, ou sur l’émulateur en ligne, débute par les lignes ci-contre.

from sense_hat import SenseHat

hat = SenseHat()

26

Page 27: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Partie A — Image 8×8 sur le Sense Hat

Cette partie peut être réalisée sans ordinateur. Cependant, les résultats trouvés peuvent être vérifiés unefois toutes les questions abordées.

Ci-dessous se trouvent un programme Python, la grille qu’il a générée, et des informations plus ou moinscomplètes.Compléter les informations et répondre aux questions.

La couleur d’un pixel est codée par une liste detrois nombres entiers compris entre 0 et 255.Exemple : [255,0,120]

Le premier nombre code la composante rouge ;le deuxième la verte ; le troisième la bleue.

Chaque pixel est repéré par ses numéros de co-lonne et de ligne :• x code la colonne, de 0 (à gauche) à 7 (à

droite) ;• y code la ligne, de 0 (en haut) à 7 (en bas).

La commandehat.set_pixel(...,...,[255,0,0])

colore le pixel du coin inférieur gauche en. . . . . . . . . . .

La commande hat.get_pixel(2,3) récupèrele code de la couleur . . . . . . . . . . .

from sense_hat import SenseHat

hat = SenseHat()

# Définition de couleurs basiques

r = [255,0,0]

g = [0,255,0]

b = [0,0,255]

# Extinction totale de la grille

hat.clear()

# Définition de pixels

hat.set_pixel(0,0,g)

hat.set_pixel(4,4,b)

hat.set_pixel(0,7,[255,0,0])

hat.set_pixel(2,3,[255,255,0])

hat.set_pixel(2,4,[...,...,...])

1. Préciser combien de couleurs différentes sont possibles.La définition d’une image est donnée par son nombre de pixels ; préciser la définition de l’image produitepar un Sense Hat.

2. Un pixel noir est codé par un triple zéro alors qu’un pixel blanc est codé par un triple 255.Écrire la commande qui place un pixel blanc à la colonne numéro 2, ligne numéro 6.Écrire la commande qui éteint le pixel rouge.

3. Écrire deux commandes :a) la première récupère la couleur du pixel de coordonnées (2, 4) et la stocke dans une variable ;b) la seconde utilise cette variable pour colorer un pixel voisin, au choix.

4. Compléter la fonction Python ci-contre,qui a pour but de colorer la ligne j de lacouleur color.Tester le résultat avec la ligne 1 et la cou-leur verte : [0,255,0].

def colore_ligne(j,color):

for k in range(...):

hat.set_pixel( ... , ... , color)

27

Page 28: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Partie B — Manipulation d’image

L’instruction hat.set_pixels permet de paramétrer l’en-semble des pixels d’un coup, à l’aide d’une liste de 64 codescouleurs. C’est ce que fait le programme ci-contre, pour affi-cher un flèche orientée vers la gauche (ci-dessous).

from sense_hat import SenseHat

hat = SenseHat()

o = [255,127,0]

n = [0,0,0]

fleche_g = [n,n,n,n,n,n,n,n,

n,n,n,n,n,n,n,n,

n,n,o,n,n,n,n,n,

n,o,n,n,n,n,n,n,

o,o,o,o,o,o,n,n,

n,o,n,n,n,n,n,n,

n,n,o,n,n,n,n,n,

n,n,n,n,n,n,n,n]

hat.set_pixels(fleche_g)

1. a) Préciser le code couleur du pixel de coordonnées (1, 4), et son indice dans la liste fleche_g.b) Préciser les coordonnées du pixel symétrique de celui de coordonnées (1, 4) par rapport à l’axe de

symétrie vertical de la grille 8×8.Préciser ensuite son indice dans la liste fleche_g.

2. a) On considère le pixel de coordonnées (x, y). Préciser son indice dans la liste fleche_g, en fonctionde x et y.

b) On considère le pixel symétrique de (x, y) par rapport à l’axe de symétrie vertical de la grille 8×8.Préciser ses coordonnées, puis son indice dans la liste fleche_g.

3. La fonction ci-contre a pour but de construirele code de la symétrie gauche-droite de l’imageimg passée en argument.Recopier le programme du début de la partie B,puis la fonction ci-contre (en la complétant).Pour la tester, exécuter la commande suivante :

hat.set_pixels(miroir(fleche_g))

def miroir(img):

# Initialisation de l’image miroir

retour = []

for k in range(64):

retour.append(n)

# Réalisation de la symétrie

for y in range(8):

for x in range(8):

pix = img[8*y+x]

retour[........] = pix

return retour

28

Page 29: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Partie C — Création d’image et transformation

1. Tester le programme ci-contre.

2. Dans le même esprit, inventer et coder une figure detype « Space Invader », de 8 pixels sur 8. Envoyer cettefigure au professeur via l’ENT, pour un affichage sur unvrai Sense Hat.

3. Cette dernière question a pour but de réaliser le négatifde l’image de la question 2.Chaque pixel de l’image doit être remplacé par son« complémentaire » : si on ajoute les composantes cou-leurs des deux pixels, on obtient un pixel « blanc »([255,255,255]).Ainsi, le pixel [0,120,255] a pour négatif :[255,...,0].

Compléter la fonction ci-dessous, qui renvoie le négatifde l’image img passée en argument. img est bien sûrune liste de 64 pixels.

from sense_hat import SenseHat

hat = SenseHat()

r = [255,0,0]

g = [0,255,0]

b = [0,0,255]

w = [255,255,255]

n = [0,0,0]

hat.clear()

img = [n,n,n,n,n,n,n,n,

n,n,g,n,n,g,n,n,

n,n,n,g,g,n,n,n,

n,n,b,b,b,b,n,n,

n,b,b,w,w,b,b,n,

b,b,b,b,b,b,b,b,

n,n,r,n,n,r,n,n,

n,r,n,n,n,n,r,n]

hat.set_pixels(img)

def negatif(img):

retour = []

for pix in img:

pixneg = [........ , ......... , ........]

retour.append(pixneg)

return retour

29

Page 30: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Sciences numériques et technologie

Académie de Rouen — Formations 2019Auteur : Laurent Cournil

La photographie

numérique

Informatique

embarquée et

objets connectés

Manipulation d’une image

8×8 sur Raspberry Pi et Sense

Hat

Fiche professeur

Contenus et capacités

Contenus Capacités attendues

Commande d’un actionneur, acquisitiondes données d’un capteur

Écrire des programmes simples d’acquisition de données oude commande d’un actionneur.

Pixels Pixels d’une image, résolution d’une image.

Traitement d’image Traiter par programme une image pour la transformer enagissant sur les trois composantes de ses pixels.

Modalités

Le préliminaire et la partie A peuvent être abordés à la maison.En séance (demi-classe si possible, avec ordinateur), la correction de la partie A et la partie B devraientpouvoir être traitées en une heure.La partie C peut être laissée en devoir à la maison, avec récupération par le professeur des imagesproduites. Cela pourrait mener une animation, sur Pi / Sense Hat, de toutes les images produites : voirfichier sense_hat_space_invader_anim.py∗ .La projection de ces images et la correction de la partie C peuvent être réalisées en classe entière.

Activités pour aller plus loin

Le livret Informatique embarquée et objets connectés présente deux autres activités avec Sense Hat :• utiliser le joystick et les LEDs pour simuler le fonctionnement des clignotants et feux stop d’un véhicule ;• utiliser le gyroscope (partie magnétomètre) et les LEDs pour simuler une boussole.

Compléments sur Raspberry Pi et Sense Hat

Des compléments techniques sur le nano-ordinateur Raspberry Pi et le Sense Hat sont disponibles en ligne,concernant en particulier le coût de ce matériel, l’installation de l’émulateur du Sense Hat, et des liensvers de la documentation.

30

Page 31: Livret « La photographie numériquemaths.spip.ac-rouen.fr/IMG/pdf/livret_snt_photo.pdf · 2020-01-10 · • La photographie numérique Une thématique transversale est l’algorithmique

Synthèse du contenu des activités

Act

ivit

éco

nnec

tée

Act

ivit

édé

bran

chée

Intr

oduc

tion

deP

ytho

n

Lien avec d’autres thématiquesColoration de pixels x xFusion d’images x xDu capteur à l’image xSimulation de la vision des couleurs des daltoniens x xManipulation d’une image 8×8 sur Raspberry Piet Sense Hat

x xInformatique embarquée et

objets connectés

Artisans de ce livret ou de la formation associée

31