SNT - LGT Albert Calmette La photographie numérique
La photographie numérique
Petit introduction : les images numériques
Commencez par regarder la vidéo suivante : [Link]
En résumé :
● Une image visualisée sur un ordinateur est un tableau de pixels.
● Chaque pixel (picture element) représente un point de l’image. Il est codé par 3 nombres
représentant chacun la quantité de rouge, de vert et de bleu pour le point en question. Cette
représentation se nomme codage RVB (ou RGB - Red Green Blue en anglais).
● Il s’agit d’une synthèse additive des couleurs
([Link]
● Le nombre de pixels dans l’image constitue sa définition.
image numérique de définition 50x40 =2000 pixels
● Plus il y a de pixels (sur un espace donné), plus l’image est fidèle à la réalité… on parle de
résolution de l’image.
La représentation des nombres dans un ordinateur : le binaire
De part la manière dont les ordinateurs sont construits, ils ne manipulent que des 0 et des 1. En
effet, les ordinateurs sont des machines électriques, et la solution la plus simple est de travailler avec
seulement 2 chiffres qui vont être représentés par courant/pas courant ou tension 5V/tension 0V. Par
ailleurs, les opérations en base 2 sont “faciles” à effectuer avec des composants électroniques.
Nous nous proposons d’apprendre à écrire facilement un nombre en base 2.
Le jeu des cartes binaires
règles du jeu : chaque carte représente un nombre : 16 / 8 / 4 / 2 / 1. Chaque
carte peut-être utilisée 1 fois au maximum. Il s’agit de représenter un nombre
quelconque à partir de l’addition des valeures des cartes.
Exemple : comment représenter le nombre 9 ? On utilise 0 fois le carte 16, 1 fois
la carte 8, 0 fois la carte 4, 0 fois la carte 2 et 1 fois la carte 1. On additionne
0x16 + 1x8 + 0x4 + 0x2 + 1x1 = 9.
Ce que l’on obtient est la représentation en binaire du nombre. Ainsi 9 = 01001
en binaire ou plus simplement 1001 car les zéros “à gauche” ne sont pas
obligatoires.
Exercice :
● Quelle est la représentation binaire de 7 ? 14 ? 23 ?
● Quelle nombre est représenté par 1011 ? 11111 ?
On généralise :
Il se trouve que les valeurs des cartes sont les différentes puissances de 2…
On se calme et on ne panique pas !
En gros, la première carte a pour valeur 1 puis à chaque fois on multiplie par 2 la carte d’avant. Donc
la 2ème carte vaut 2x1=2. La 3ème 2x2=4. Puis 2x4=8. Puis 2x8=16… puis etc. On peut résumer tout
ça dans un tableau par exemple. La première ligne contient la valeure des cartes, tandis-que celle du
dessous, soit 0 soit 1. Après il n’y a plus qu’à additionner. Le tableau se construit de droite à gauche.
128 64 32 16 8 4 2 1 Total
0 0 0 0 0 1 1 1 4x1 + 2x1 + 1x1 = 7
0 0 0 1 0 1 1 1 16x1 + 4x1 + 2x1 + 1x1 = 23
Un peu de vocabulaire :
● Tout comme les mots sont écrits avec des lettres (“rue” a 3 lettres qui sont “r” “u” et “e”), les
nombres sont écrits avec des chiffres (145 est un nombre écrit avec trois chiffres qui sont le
“1”, le “4” et le “5”). Et bien en binaire, on ne parle pas de chiffres, mais, de bits. Par exemple,
le nombre binaire 10111 est écrit avec 5 bits. Un bit ne peut avoir que 2 valeurs : 0 ou 1
● Pour des raisons techniques et historiques, on a l’habitude d’écrire les nombres avec 8 bits.
Ainsi, pour coder le nombre 23, même si techniquement 5 bits suffisent comme on vient de le
voir, on l’écrira plutôt 00010111 c.a.d. avec 8 bits (même s’il n’y a que des 0 à gauche).
● Un nombre écrit sur 8 bits (on dit “sur 8 bits” plutôt “qu’avec 8 bits” mais ça veut dire
exactement la même chose) se nomme un octet (byte en anglais).
Exercice 1 :
Le plus grand nombre que l’on puisse représenter avec 3 bits est 111. Sa valeur décimale est 7.
Le plus grand nombre que l’on puisse représenter avec 4 bits est 1111. Sa valeur décimale est 15.
Dans la même optique, quel est le plus grand nombre que l’on puisse représenter avec 8 bits ?
La représentation des lettres dans un ordinateur : le code ASCII
Commençons par résumer tout ce que nous venons de voir :
[Link]
On va considérer que chaque lettre est représentée par un octet. Toujours le même nombre pour la
même lettre. Par exemple, la lettre “A” est codée par le nombre 65, qui s’écrit en binaire 10000001
Exercice 2 :
Décodez, à l’aide de la table ASCII ci dessus, le message suivant écrit en binaire :
1010011 1001110 1010100
Retour sur les images… On commence par le noir & blanc
Exercice 3:
Quelles sont les dimensions de cette image ?
Combien-y-a-t’il de pixels dans cette image ?
Comme il n’y a que 2 couleurs… Combien de bits sont
nécessaires, d’après-vous pour coder la couleur ?
En déduire combien de bits sont nécessaires pour
représenter cette image?
Coder une image en niveau de gris
Supposons maintenant, que l’on considère que chaque pixel est codé sur un octet. Nous avons vu
plus haut qu’un octet peut représenter des nombres entre 00000000 = 0 et 11111111 = 255 ce qui
nous fait un total de 256 valeures différentes…
Par convention, le blanc est codé par le nombre 255
tandis-que le noir est codé par le 0
Moralité, plus un gris sera foncé, plus la valeur associée sera proche de 0.
Exercice 4:
Associer à chaque image le tableau correspondant :
Supposons que l’on trouve l’image A trop foncée… Que faut-il faire avec les valeurs correspondantes
de son tableau ?
Et maintenant la couleur !
Nous avons vu plus haut que dans le codage RVB
on associe à chaque pixel 3 valeurs de couleurs :
une valeur de Rouge, une de Vert et une de Bleu (3
“canaux”). La couleur du pixel sera le résultat de la
synthèse additive de ces 3 couleurs.
Dans le codage RVB 24 bits, chaque couleur est
codée sur 8 bits.
Ainsi le rouge sera codé en RVB 255 0 0 (rouge “à fond”, pas de vert, pas de bleu). Sous forme
binaire, ce sera 111111110000000000000000 (111111110000000000000000)
Exercice 5:
● A quelle couleur correspond le codage RVB 11111111 11111111 00000000 ?
● Quel est le code pour du violet ?
On donne ci-dessous une portion du fichier correspondant à une image
8x8 pixels.
La séquence étant répétitive, seul le début est indiqué (format décimal
RVB) :
[Link].[Link].[Link].[Link].0.0….
● Colorier l’image correspondante.
● Décrire l’image obtenue.