Images Numériques

La partie théorique consiste à visionner en premier la vidéo suivante qui a pour but de donner les bases de la repérsentation des images en binaire.

Cette activité est une variante qui n’utilise pas de langage de programmation (Python, numpy, matplotlib, etc.). Elle se base sur les formats de fichiers textes suivant:

  • .pbm - images en noir et blanc

  • .pgm - images en niveaux de gris

  • .ppm - images en couleur

Les fichiers créés sont immédiatement visibles en tant qu’icônes sur les systèmes d’exploitation Mac OS. Pour bien les visualiser, il faut passer en représentation par icône et augmenter suffisamment leur taille.

../../_images/E.png ../../_images/logo.png ../../_images/degrade_gris.png ../../_images/degrade_bleu.png

Notice

  • Thème : Représentation de l’information (images et pixels)

  • Niveau : Facile à moyen

  • Durée : 2 périodes

  • Objectifs pédagogiques : Manipuler des images pixel par pixel

  • Notions fondamentales : modes de représentation des pixels par des nombres entiers

  • Modalité : branché

  • Matériel : un éditeur de fichiers

  • Prérequis : Aucun

Principe

Les fichiers .pbm, .pgm et .ppm permettent de coder facilement des pixels individuels en mode texte. Chacun de ces fichiers comporte une en-tête suivie des données. Les éléments sont simplement séparés par des espaces ou des tabulations. Les retours à la ligne n’ont pas d’importance. Par contre, il faut ajouter un espace après le dernier élément pour qu’il soit pris en compte.

En-tête

  1. le mode:

    • “P1” pour des fichiers noir-blanc (.pbm)

    • “P2” pour des fichiers en niveau de gris (.pgm)

    • “P3” pour des fichiers en couleurs (.ppm)

  2. la taille de la grille en pixels (h x l)

  3. le nombre de niveaux de valeur des pixels

Données

Chaque pixel est codé de 0 à la valeur maximale choisie. Les pixels sont séparés par un espace. Il faut simplement s’assurer d’avoir un nombre de pixels au moins égal à la taille de la grille (h x l)

Exemples

../../_images/exemple1.png
Attention, pour le mode noir-blanc le codage utilise 1 pour le noir et 0 pour le blanc!

Ici l'image est définie sur une grille 4 x 5.

../../_images/exemple2.png

Ici l'image est définie sur une grille 3 x 6. Les niveaux de gris vont de 0 à 4 (5 valeurs) 0: noir 4: blanc. Avec ce codage, il est facile de définir des dégradés

../../_images/exemple3.png
Ici l'image est définie sur une grille 4 x 4. Les valeurs sont définies de 0 à 255 (256 valeurs). Chaque pixel est codé sur 3 valeurs pour RVB. Les valeurs dans le texte ont été colorées pour correspondre à la couleur des pixels.

Il est parfaitement possible de définir les valeurs de 0 à 100 pour correspondre à un pourcentage.

Déroulement

Étape

Durée

Phase de l’activité

0. Visionnement de la vidéo

10 min

Apprentissage

1. La pixelisation

15 min

Exploration

2. Lettres au format bitmap

15 min

Exploration

3. Les dégradés (niveau de gris)

15 min

Exploration et institutionnalisation

4. Les drapeaux

15 min

Exploration et institutionnalisation

5. Les dégradés (couleur)

15 min

Exploration et institutionnalisation

Pixelisation

Cette première partie se fait de manière débranchée. On distribue aux élèves des grilles imprimées (sur papier et sur transparent) et divers logos. grilles, logo 1, logo 2 et logo 3. On superpose les grilles transparentes aux images pour remplir les grilles sur papier.

Lors d’une petite mise en commun, on peut comparer les résultats obtenus par les élèves. Globalement on peut remarquer qu’il faut un grand nombre de pixels (résolution élevée) pour pouvoir identifier un logo même très simple. On va se concentrer sur des objets facilement identifiables même avec un nombre très limité de pixels: les lettres de l’alphabet.

Lettres au format bitmap

Les lettres sont très faciles à identifier, même sur des grilles de taille réduite (4 x 5 ou 5 x 5). En utilisant l’exemple donné pour la lettre “E”, on introduit les fichiers de type .pbm. La tâche des élèves est de produire diverses lettres de l’alphabet ou des chiffres.

Les dégradés

Il est difficile de produire une image en niveau de gris en codant les pixels individuels. Certains logiciels comme GIMP permettent d’enregistrer les fichiers directement sous ce format. Par contre, il est intéressants de produire des dégradés en variant progressivement les valeurs dans le tableau comme le montre l’exemple suivant. En fonction du niveau de connaissance des élèves, il est possible d’utiliser Excel pour générer facilement des dégradés numériques que l’on peut ensuite copier-coller.

# Codage du dégradé
P2
8 8
10
0  1  2  3  4  5  6  7
1  2  3  4  5  6  7  8
2  3  4  5  6  7  8  9
3  4  5  6  7  8  9 10
4  5  6  7  8  9 10 11
5  6  7  8  9 10 11 12
6  7  8  9 10 11 12 13
7  8  9 10 11 12 13 14
../../_images/degrade-diag.png

Les drapeaux

Un bon sujet d’activité pour le codage des images en couleur consiste à reproduire des drapeaux. La palette des couleurs nécessaires est limitée et en cas de nécessité, on peut fournir une liste de valeurs au tableau pour aider les élèves.

../../_images/swiss.png ../../_images/france.png ../../_images/ireland.png ../../_images/germany.png
# Codage pour germany.ppm
P3
6 3 255
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 255 0 0 
255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 

Les dégradés en couleur

Pour les élèves plus avancés, on peut proposer de coder des dégradés en couleur. C’est une activité plus difficile et il peut être utile de recourir à un tableur pour générer facilement les valeurs.

# Codage pour germany.ppm
P3
6 6
12
12	0	2	11	1	2	10	2	2	9	3	2	8	4	2	7	5	2
11	1	2	10	2	2	9	3	2	8	4	2	7	5	2	6	6	2
10	2	2	9	3	2	8	4	2	7	5	2	6	6	2	5	7	2
9	3	2	8	4	2	7	5	2	6	6	2	5	7	2	4	8	2
8	4	2	7	5	2	6	6	2	5	7	2	4	8	2	3	9	2
7	5	2	6	6	2	5	7	2	4	8	2	3	9	2	2	10	2
6	6	2	5	7	2	4	8	2	3	9	2	2	10	2	1	11	2
5	7	2	4	8	2	3	9	2	2	10	2	1	11	2	0	12	2
../../_images/degrade_diag_2.png