Les images matricielles
Une image (du latin imago, qui désignait autrefois les masques mortuaires, moulés à partir de cire d’abeille, sur le visage d’une personne morte afin d’en conserver les traits, comme d’un portrait) est une représentation visuelle, voire mentale, de quelque chose (objet, être vivant et/ou concept).
L’image visuelle artificielle peut être :
- enregistrée à partir du réel : photographie, vidéo, radiographie, IRM, …
- fabriquée à partir d’une construction ou d’une restitution du réel : dessin, peinture, image de synthèse, …
Images numériques
Un ordinateur ne manipule que des valeurs numériques (représentées sous forme binaire) ; une image numérique devra donc être codée par des nombres.
On distingue deux types d’image numérique :
- les images matricielles : formées de points (des pixels)
- les images vectorielles : formée d’éléments géométriques (segments de droite, arcs de cercles, …)
Image numérique matricielle
Exemple d’image matricielle :
Image d’une coupe sagittale de cerveau humain obtenue en IRM anatomique |
La même image avec un zoom x 4 On commence à distinguer les pixels. |
Zoom x 12 : un tableau de pixels… |
On appelle image matricielle ou « carte de points » (de l’anglais bitmap), un ensemble fini de points colorés appelés pixels (contraction de picture elements) organisés en matrice (tableau à 2 dimensions).
Cette matrice contraint l’image à des dimensions fixes : une largeur (width) et une hauteur (height), le tout exprimé en pixels.
Une troisième dimension, appelée profondeur, permet de coder la couleur de chaque pixel. La profondeur d’une image peut être de différentes tailles :
- 1 bit : 0 ou 1 pour les couleurs « noir » ou « blanc »,
- 1 octet : pour coder 256 niveaux de gris, ou bien une palette de 256 couleurs,
- 3 octets : pour coder les proportions de rouge, de vert et de bleu (256 valeurs possible chacun),
- 4 octets : pour coder en plus une information de transparence,
- …
La taille (size) d’une image (quantité de mémoire nécessaire pour stocker une image) dépend du type de mémoire :
- sur une mémoire de masse (disque dur , …) l’image est stockée dans un fichier (voir Formats d’enregistrement),
- dans la mémoire vive, elle occupe une place qui peut donc être calculée ainsi (en octets) :
\large{\text{taille de l’image en mémoire}} &\large{=} &\large{\text{largeur}} &\large{\times} &\large{\text{hauteur}} &\large{\times} &\large{\text{profondeur}} \\
\color{green}{octets} & &\color{green}{pixels} & &\color{green}{pixels} & &\color{green}{octets}
\end{array}}\)
Formats d’enregistrement
Il existe de nombreux formats pour enregistrer une image, avec des niveaux de complexité très variables.
Les plus courants sont :
- PNG : Portable Network Graphics
Il permet les fonds transparents. La compression proposée par ce format est d’une qualité 5 à 25 % meilleure que la compression GIF. - JPG / JPEG : Joint Photographic Experts Group
Un des formats les plus utilisés sur le net. Les appareils photo numériques compacts prennent également les photos au format JPG. Il contient des méta informations (des EXIF et IPTC) qui permettent de connaître des informations au sujet de la photo. - GIF : Graphics Interchange Format
Format adapté aux images de basse résolution. Permet la transparence et les images animées – plusieurs images séquentielles à l’intérieur du même fichier. Il est utilisé pour des logos, des icônes, des boutons et autres éléments de pages web. Profondeur limitée à 1 octet, soit 256 couleurs dans une palette. - …
Métadonnées
Certains formats d’enregistrement permettent également d’ajouter dans le fichier des métadonnées qui peuvent indiquer :
- les dimensions « réelles » de l’image, sous la forme d’une résolution (en pixels par cm par exemple, ou en pixels par pouce : ppp)
- les conditions de la prise de vue (focale, exposition, date, …)
- …
Ces données sont le plus souvent à la spécification EXIF.
Compression
La plupart de ces formats utilisent des algorithmes de compression, afin de réduire la taille de l’image sur les mémoires de masse (disque durs, …).
On défini alors le taux de compression par :
\(\bbox[10px,border:2px solid black]{\large{\text{taux de compression}=1-\frac{\text{taille du fichier image}}{\text{taille de l’image en mémoire}}}}\)
La compression peut être réalisée avec ou sans perte :
- sans perte : l’image comprimée est parfaitement identique à l’originale
- avec perte : l’image est plus ou moins dégradée, selon le taux de compression souhaité.
Exemple : perte de qualité lors d’une compression JPEG :
Codage numérique
Le codage d’une image est intimement lié au format d’enregistrement.
Manipulation
Pour manipuler des images avec Python, il faut utiliser des bibliothèques capables de réaliser des opérations complexes telles que :
- ouvrir/enregistrer des fichiers image,
- accéder (lecture et écriture) aux pixels,
- modifier les dimensions et recadrage,
- modifier les propriétés de luminosité, contraste, balance des couleurs, …,
- filtrage,
- …
La bibliothèque la plus couramment employée sur Python est PIL.
source : http://eduscol.education.fr/cid60671/ressources-isn.html