Traitement d'image par programme
Tu prends une photo de nuit à Strasbourg avec ton téléphone : en une seconde, l'image est éclaircie, nettoyée et assemblée à partir de plusieurs clichés. Comment un programme peut-il « retoucher » une image sans jamais la regarder ? Réponse : en la traitant comme un tableau de nombres.
L'image : un tableau de nombres
Une image numérique est une grille de pixels. Dans une image en niveaux de gris, chaque pixel est codé sur un octet : un entier entre 0 et 255.
-
$0$ correspond au noir ;
-
$255$ correspond au blanc ;
-
les valeurs intermédiaires sont des gris de plus en plus clairs.
Un octet comporte 8 bits, donc $2^8 = 256$ valeurs possibles, de 0 à 255.
Pour une image en couleur, chaque pixel a trois composantes $(R, G, B)$ (rouge, vert, bleu), chacune sur un octet : 3 octets par pixel.
La taille d'une image non compressée se calcule ainsi :
$$\text{taille} = \text{largeur} \times \text{hauteur} \times \text{nombre d'octets par pixel}$$Une image en niveaux de gris code chaque pixel sur un octet (de 0 à 255). a) Quelle valeur correspond au noir ? au blanc ? b) Combien de niveaux de gris différents…
Une image en niveaux de gris code chaque pixel sur un octet (de 0 à 255).
- a) Quelle valeur correspond au noir ? au blanc ?
- b) Combien de niveaux de gris différents peut-on représenter ?
Une photo en niveaux de gris fait 1 200 × 800 pixels, un octet par pixel, sans compression. a) Calculer sa taille en octets puis en Mo (1 Mo = 1 000 000 octets). b) Même…
Une photo en niveaux de gris fait 1 200 × 800 pixels, un octet par pixel, sans compression.
- a) Calculer sa taille en octets puis en Mo (1 Mo = 1 000 000 octets).
- b) Même question pour la même image en couleur (3 octets par pixel).
Transformer une image pixel par pixel
Un algorithme de traitement d'image parcourt tous les pixels (avec une boucle) et applique à chacun une même opération. En langage naturel :
Pour chaque pixel de l'image : calculer une nouvelle valeur à partir de l'ancienne, puis la remplacer.
Négatif et niveaux de gris
-
Négatif : la nouvelle valeur est $255 - v$. Le noir (0) devient blanc (255) et inversement.
-
Niveau de gris d'un pixel couleur : par exemple la moyenne $\dfrac{R+G+B}{3}$, arrondie à l'entier le plus proche.
Seuillage
Le seuillage transforme une image en noir et blanc pur : on choisit un seuil $s$. Tout pixel de valeur $\geq s$ devient 255, sinon 0.
En Python, cela s'écrit pour un pixel v :
if v >= 128:
v = 255
else:
v = 0
Et sur toute l'image, il suffit de répéter ce test dans une boucle sur les lignes et les colonnes.
Une image en niveaux de gris de 3×3 pixels est : Calculer l'image négative, sachant que le négatif d'un pixel de valeur $v$ vaut $255-v$.
Une image en niveaux de gris de 3×3 pixels est :
10 200 50
0 255 100
30 120 220
Calculer l'image négative, sachant que le négatif d'un pixel de valeur $v$ vaut $255-v$.
Un pixel couleur est codé $(R,G,B)=(200,100,50)$. Calculer son niveau de gris par la moyenne $(R+G+B)/3$ et l'arrondir à l'entier le plus proche.
Un pixel couleur est codé $(R,G,B)=(200,100,50)$. Calculer son niveau de gris par la moyenne $(R+G+B)/3$ et l'arrondir à l'entier le plus proche.
On applique à une image un seuillage : tout pixel de valeur supérieure ou égale à 128 devient 255, sinon 0. Soit la ligne : 12 ; 130 ; 127 ; 128 ; 250 ; 60. a) Donner la…
On applique à une image un seuillage : tout pixel de valeur supérieure ou égale à 128 devient 255, sinon 0. Soit la ligne : 12 ; 130 ; 127 ; 128 ; 250 ; 60.
- a) Donner la ligne obtenue.
- b) Écrire en langage naturel l'algorithme qui applique ce seuillage à tous les pixels d'une image.
Éclaircir, plafonner, détecter des contours
Éclaircir avec plafonnement
Pour éclaircir, on ajoute une constante à chaque pixel. Mais un octet ne dépasse pas 255 : il faut donc plafonner.
v = v + 40
if v > 255:
v = 255
Tous les pixels qui dépassent 255 après l'ajout deviennent blancs : on perd leurs différences (c'est la saturation).
Détection de contours
Un contour est un endroit où la luminosité change brusquement. Pour le repérer, on calcule la différence en valeur absolue entre un pixel et son voisin de droite : $|v_{i+1} - v_i|$. Si elle dépasse un seuil, on signale un contour.
Pour détecter un contour horizontal, on calcule pour chaque pixel la différence en valeur absolue avec le pixel de droite. La ligne de pixels est : 20 ; 22 ; 21 ; 200 ;…
Pour détecter un contour horizontal, on calcule pour chaque pixel la différence en valeur absolue avec le pixel de droite. La ligne de pixels est : 20 ; 22 ; 21 ; 200 ; 198 ; 30 ; 29.
- a) Calculer la ligne des différences (6 valeurs).
- b) Avec un seuil de 100, indiquer les positions détectées comme contours.
- c) Expliquer pourquoi un bruit de capteur peut produire de fausses détections.
On éclaircit une image en ajoutant 60 à chaque pixel, en plafonnant à 255. a) Appliquer à la ligne : 10 ; 100 ; 200 ; 250. b) Expliquer ce qu'on perd comme information…
On éclaircit une image en ajoutant 60 à chaque pixel, en plafonnant à 255.
- a) Appliquer à la ligne : 10 ; 100 ; 200 ; 250.
- b) Expliquer ce qu'on perd comme information sur les pixels déjà clairs.
- c) Écrire l'algorithme en langage naturel avec un test pour le plafonnement.
Les algorithmes de l'appareil photo
Un appareil photo ou un smartphone exécute des algorithmes avant même que tu voies l'image finale.
| Algorithme | Rôle |
|---|---|
| Exposition automatique | Mesure la luminosité moyenne de la scène et règle le temps de pose, l'ouverture ou la sensibilité pour éviter une image trop sombre ou trop claire. |
| Mise au point automatique | Mesure la netteté (le contraste des contours) ou une distance, et déplace l'objectif jusqu'à obtenir l'image la plus nette. |
| Stabilisation | Utilise les capteurs de mouvement pour compenser les tremblements de la main, ou aligne les images par logiciel. |
| Fusion d'images (HDR) | Combine plusieurs photos d'expositions différentes pour garder les détails des zones sombres et claires. |
Pour une fusion, une moyenne pixel à pixel est simple : $\dfrac{v_1+v_2}{2}$. Mais elle donne souvent un résultat terne : une valeur très claire et une valeur très sombre donnent un gris moyen, qui efface les contrastes (par exemple $\dfrac{250+20}{2} = 135$). Un meilleur critère : garder, pour chaque pixel, la valeur la mieux exposée, c'est-à-dire la plus éloignée de 0 et de 255 (par exemple la plus proche de 128).
La fusion compare les pixels de même position : si l'appareil a bougé entre les prises de vue, ils ne correspondent plus. D'où la stabilisation avant la fusion.
Citer et expliquer en une phrase chacun de ces algorithmes d'un appareil photo : réglage de l'exposition, mise au point automatique, stabilisation, fusion d'images (HDR).
Citer et expliquer en une phrase chacun de ces algorithmes d'un appareil photo : réglage de l'exposition, mise au point automatique, stabilisation, fusion d'images (HDR).
Deux photos d'une même scène (de nuit à Strasbourg) sont fusionnées : l'une, surexposée, donne les valeurs 240 ; 250 ; 100 pour trois pixels, l'autre, sous-exposée,…
Deux photos d'une même scène (de nuit à Strasbourg) sont fusionnées : l'une, surexposée, donne les valeurs 240 ; 250 ; 100 pour trois pixels, l'autre, sous-exposée, donne 20 ; 90 ; 40.
- a) Calculer, pixel à pixel, l'image moyenne des deux photos.
- b) Expliquer pourquoi une simple moyenne n'est pas toujours la meilleure méthode pour fusionner et proposer un critère pour choisir le pixel de chaque photo.
- c) Pourquoi la stabilisation est-elle nécessaire avant la fusion ?
Retour au début : le téléphone traite ta photo de nuit à Strasbourg comme un tableau de nombres, sur lequel des algorithmes (exposition, fusion, stabilisation) agissent pixel par pixel.
L'essentiel
-
Une image en niveaux de gris est un tableau de valeurs de 0 (noir) à 255 (blanc) : 256 niveaux avec un octet.
-
Une image couleur utilise 3 octets $(R, G, B)$ par pixel ; taille = largeur × hauteur × octets par pixel.
-
Un traitement parcourt tous les pixels : négatif ($255 - v$), niveau de gris (moyenne), seuillage, éclaircissement avec plafonnement.
-
Un contour se détecte par une forte différence entre pixels voisins ; le bruit peut causer de fausses détections.
-
Exposition, mise au point, stabilisation et fusion HDR sont des algorithmes de l'appareil photo.