Examen traitement d'images -Traitement d'image - Télécharger
Télécharger PDFTraitement d'images : Concepts Fondamentaux et Techniques
Ce document explore les concepts clés et les techniques courantes en traitement d'images, allant des bases de la représentation des images numériques aux méthodes de filtrage et de segmentation.
A) Traitements de Base des Images
1. Niveaux de Gris d'une Image
Le nombre de niveaux de gris qu'une image peut contenir est directement lié au nombre de bits utilisés pour coder chaque pixel. Si un pixel est codé sur n bits, le nombre de niveaux de gris possibles est de 2n.
Pour une image dont les pixels sont codés sur 5 bits, le nombre de niveaux de gris est 25 = 32. Ces niveaux varient généralement de 0 (noir) à 31 (blanc).
2. Synthèse Additive des Couleurs
La synthèse additive est un modèle de mélange des couleurs où l'ajout de lumières de différentes couleurs produit une couleur résultante. Les couleurs primaires additives sont le rouge (R), le vert (G) et le bleu (B).
- En mélangeant le rouge et le vert, on obtient le jaune.
- En mélangeant le vert et le bleu, on obtient le cyan.
- En mélangeant le rouge et le bleu, on obtient le magenta.
- En mélangeant le rouge, le vert et le bleu à pleine intensité, on obtient le blanc.
Ce modèle est principalement utilisé pour les écrans, les projecteurs et tout autre dispositif qui émet de la lumière.
3. Contraste et Luminance d'une Image
Le contraste d'une image représente la différence d'intensité lumineuse entre les zones claires et les zones sombres. Un contraste élevé indique une grande variation entre les pixels les plus clairs et les plus foncés, ce qui rend l'image plus "nette" ou "punchy". Un contraste faible donne une image plus "plate".
Il existe plusieurs façons de définir le contraste mathématiquement. Une définition courante est le contraste de Michelson, souvent utilisé pour les motifs périodiques :
C = (Imax - Imin) / (Imax + Imin)
où Imax est l'intensité maximale et Imin est l'intensité minimale dans une région ou l'image entière.
La luminance d'une image est une mesure de l'intensité lumineuse perçue par l'œil humain. Elle représente la quantité de lumière émise ou réfléchie par une surface dans une direction donnée. Dans le contexte des images numériques, elle est souvent une moyenne pondérée des composantes R, V et B pour refléter la sensibilité de l'œil aux différentes couleurs.
Pour une image en niveaux de gris, la luminance d'un pixel est simplement son niveau de gris. Pour une image couleur (RGB), la luminance (Y) peut être approchée par :
Y = 0.299R + 0.587G + 0.114B
où R, G, B sont les intensités des composantes rouge, verte et bleue du pixel.
4. Analyse d'Histogramme pour une Image en Niveaux de Gris
Considérons l'image en niveaux de gris suivante :
20 40 21 10 6
55 30 5 22 20
25 55 6 5 22
22 20 5 25 10
5 20 15 20 20
a) Compléter le tableau d'histogramme et d'histogramme cumulé
L'histogramme d'une image représente la distribution des intensités des pixels. Il montre, pour chaque niveau de gris, le nombre de pixels possédant cette intensité. L'histogramme cumulé indique, pour chaque niveau de gris, le nombre total de pixels ayant une intensité inférieure ou égale à ce niveau.
Pour l'image donnée, les niveaux de gris présents sont : 5 (4 fois), 6 (2 fois), 10 (2 fois), 15 (1 fois), 20 (6 fois), 21 (1 fois), 22 (3 fois), 25 (3 fois), 30 (1 fois), 40 (1 fois), 55 (2 fois).
| Niveau de gris | Histogramme (fréquence) | Histogramme cumulé |
|---|---|---|
| 5 | 4 | 4 |
| 6 | 2 | 6 |
| 10 | 2 | 8 |
| 15 | 1 | 9 |
| 20 | 6 | 15 |
| 21 | 1 | 16 |
| 22 | 3 | 19 |
| 25 | 3 | 22 |
| 30 | 1 | 23 |
| 40 | 1 | 24 |
| 55 | 2 | 26 |
(Note : Les niveaux de gris non présents dans l'image ont une fréquence de 0.)
b) Tracé des graphes de l'histogramme et de l'histogramme cumulé
Bien qu'il ne soit pas possible de tracer graphiquement ici, le principe est de représenter l'histogramme par un diagramme en bâtons (axe X : niveaux de gris, axe Y : nombre de pixels) et l'histogramme cumulé par une courbe croissante (axe X : niveaux de gris, axe Y : nombre cumulé de pixels).
5. Interprétation des Lobes d'un Histogramme
Un histogramme typique affiche les fréquences des niveaux d'intensité des pixels. Les différentes parties ou "lobes" d'un histogramme peuvent correspondre à des régions spécifiques de l'image :
- Lobes à gauche (niveaux de gris faibles, proches de 0) : Représentent les régions sombres de l'image, comme les ombres profondes, le fond noir ou les objets sombres.
- Lobes au centre (niveaux de gris moyens) : Correspondent aux tons moyens de l'image, souvent présents dans les objets principaux ou les zones bien éclairées mais pas surexposées.
- Lobes à droite (niveaux de gris élevés, proches de 255) : Indiquent les régions claires ou lumineuses de l'image, telles que les zones éclairées, les reflets ou le fond blanc.
L'analyse des lobes permet de comprendre la distribution de la luminosité et du contraste de l'image. Par exemple, un histogramme avec des pics aux extrémités et un creux au milieu suggère une image à fort contraste, tandis qu'un histogramme concentré au centre indique un faible contraste.
B) Filtrage des Images
Le filtrage est une technique fondamentale en traitement d'images utilisée pour modifier ou améliorer une image, souvent pour réduire le bruit ou accentuer des caractéristiques.
Considérons l'image bruitée suivante (ici présentée comme une matrice pour un exemple) :
20 29 21 25 25
30 0 20 25 255
22 18 29 20 1
21 23 28 19 19
Dans cet exemple, les valeurs comme 0, 1, 255 sont des artefacts de bruit.
1. Type de Bruit dans l'Image
Les valeurs extrêmes (0 et 255) présentes dans l'image suggèrent la présence d'un bruit impulsionnel, également connu sous le nom de bruit "sel et poivre" (salt-and-pepper noise). Ce type de bruit se caractérise par des pixels dont les valeurs d'intensité sont remplacées aléatoirement par des valeurs minimales (0, "poivre" ou noir) ou maximales (255, "sel" ou blanc) de la plage dynamique de l'image.
Justification : La présence de pixels isolés prenant les valeurs 0 et 255, qui sont respectivement les intensités minimales et maximales pour une image sur 8 bits (allant de 0 à 255), est une marque distinctive du bruit impulsionnel.
2. Filtrage Médian (Filtre 3x3)
Le filtrage médian est une technique non linéaire efficace pour réduire le bruit impulsionnel tout en préservant les contours. Pour un pixel donné, le filtre médian remplace la valeur de ce pixel par la médiane des valeurs des pixels dans son voisinage (ici, une fenêtre 3x3).
Appliquons le filtrage médian aux pixels bruités seulement (0, 255, 1) en utilisant un filtre 3x3. Pour chaque pixel bruité, nous considérons la fenêtre 3x3 centrée sur lui, ordonnons les valeurs des pixels de cette fenêtre et choisissons la valeur du milieu (la médiane).
Exemple pour le pixel à 0 (ligne 2, colonne 2) :
29 21 25
30 0 20
18 29 20
Les valeurs dans la fenêtre 3x3 sont : {0, 18, 20, 20, 21, 25, 29, 29, 30}.
La médiane est 21. Le pixel à 0 serait remplacé par 21.
Exemple pour le pixel à 255 (ligne 2, colonne 5) :
En considérant les valeurs existantes et un padding par répétition du bord pour compléter la fenêtre 3x3, les valeurs seraient : {25, 25, 25, 20, 255, 25, 20, 1, 19}. En ordre : {1, 19, 20, 20, 25, 25, 25, 25, 255}. La médiane est 25. Le pixel à 255 serait remplacé par 25.
Exemple pour le pixel à 1 (ligne 3, colonne 5) :
En considérant les valeurs existantes et un padding par répétition du bord, les valeurs de la fenêtre 3x3 centrée sur 1 seraient : {25, 255, 25, 20, 1, 19, 28, 19, 19}. En ordre : {1, 19, 19, 19, 20, 25, 28, 255, 255}. La médiane est 20. Le pixel à 1 serait remplacé par 20.
3. Filtrage Moyenneur (Filtre 3x3)
Le filtrage moyenneur (ou filtre passe-bas) est une technique linéaire qui remplace la valeur d'un pixel par la moyenne arithmétique des valeurs des pixels dans son voisinage (fenêtre 3x3). Ce filtre est efficace pour le bruit gaussien mais peut brouiller les bords de l'image.
Appliquons le filtrage moyenneur aux pixels bruités seulement (0, 255, 1) en utilisant un filtre 3x3.
Exemple pour le pixel à 0 (ligne 2, colonne 2) :
Somme des valeurs dans la fenêtre : (29+21+25 + 30+0+20 + 18+29+20) = 192.
Moyenne = 192 / 9 = 21.33. Le pixel à 0 serait remplacé par 21 (arrondi).
Exemple pour le pixel à 255 (ligne 2, colonne 5) :
En utilisant les valeurs de la fenêtre centrée sur 255, avec padding par répétition du bord : {25, 25, 25, 20, 255, 25, 20, 1, 19}. La somme est 415. La moyenne est 415 / 9 = 46.11. Le pixel à 255 serait remplacé par 46 (arrondi).
Exemple pour le pixel à 1 (ligne 3, colonne 5) :
En utilisant les valeurs de la fenêtre centrée sur 1, avec padding par répétition du bord : {25, 255, 25, 20, 1, 19, 28, 19, 19}. La somme est 411. La moyenne est 411 / 9 = 45.66. Le pixel à 1 serait remplacé par 46 (arrondi).
4. Identification du Filtre
Le filtre donné est une matrice 5x5 :
0.003 0.013 0.022 0.013 0.003
0.013 0.059 0.097 0.059 0.013
0.022 0.097 0.159 0.097 0.022
0.013 0.059 0.097 0.059 0.013
0.003 0.013 0.022 0.013 0.003
Il s'agit d'un filtre gaussien.
Justification : Les coefficients du filtre sont symétriques par rapport au centre et diminuent à mesure que l'on s'éloigne du centre. Ces caractéristiques sont typiques d'une approximation discrète d'une fonction de Gauss 2D. Les filtres gaussiens sont des filtres passe-bas qui sont largement utilisés pour le lissage et la réduction du bruit gaussien, car ils minimisent le flou tout en supprimant efficacement le bruit.
La somme de tous les coefficients de ce filtre est approximativement 0.987 (somme des coefficients : (4 * 0.003) + (8 * 0.013) + (4 * 0.022) + (4 * 0.059) + (4 * 0.097) + (1 * 0.159) = 0.012 + 0.104 + 0.088 + 0.236 + 0.388 + 0.159 = 0.987), ce qui est caractéristique des filtres de lissage pour maintenir la luminosité de l'image.
C) Segmentation des Images
La segmentation d'image est le processus de division d'une image numérique en plusieurs segments (ensembles de pixels), ou en un ensemble de pixels qui composent un objet, afin de simplifier ou de changer la représentation d'une image en quelque chose de plus significatif et facile à analyser.
1. et 2. Méthode K-moyennes (K-means)
La méthode K-moyennes (K-means) est un algorithme de clustering non supervisé couramment utilisé pour la segmentation d'images. Elle vise à partitionner les pixels d'une image en K clusters, où chaque pixel appartient au cluster le plus proche de son centroïde (moyenne).
Voici les étapes de l'algorithme K-means pour la segmentation d'images :
- Initialisation : Choisir
Kpoints aléatoires dans l'espace des caractéristiques (par exemple, les valeurs d'intensité ou de couleur des pixels) comme centroïdes initiaux des clusters. - Assignation : Pour chaque pixel de l'image, calculer sa distance par rapport à chacun des
Kcentroïdes. Assigner chaque pixel au cluster dont le centroïde est le plus proche. - Mise à jour : Recalculer les positions des
Kcentroïdes en prenant la moyenne de tous les pixels assignés à chaque cluster. - Itération : Répéter les étapes 2 et 3 jusqu'à ce que les centroïdes ne changent plus significativement, ou qu'un nombre maximal d'itérations soit atteint.
- Résultat : Les pixels de l'image sont alors regroupés en
Ksegments, chaque segment correspondant à un cluster.
L'organigramme de cette méthode décrirait ce flux itératif, avec des boucles pour les étapes d'assignation et de mise à jour jusqu'à convergence.
3. Algorithme de Croissance de Région
La croissance de région est une méthode de segmentation basée sur la connectivité des pixels. Elle commence par des "graines" (seed points) et étend progressivement les régions en ajoutant des pixels voisins qui satisfont un critère d'homogénéité (par exemple, une similarité d'intensité ou de couleur).
Voici l'algorithme de la méthode de croissance de région, en expliquant chaque étape :
- Initialisation :
- Sélectionner un ou plusieurs pixels "graines" (points de départ) dans l'image. Ces pixels serviront de points de départ pour la croissance des régions.
- Définir un critère d'homogénéité (par exemple, une plage d'intensité, une couleur similaire, ou une texture).
- Croissance de la Région :
- Pour chaque pixel graine, ajouter ce pixel à une nouvelle région.
- Examiner les pixels voisins de la région actuelle.
- Si un pixel voisin satisfait le critère d'homogénéité par rapport à la région (par exemple, sa valeur d'intensité est proche de la moyenne ou de la médiane de la région), l'ajouter à la région et le marquer comme visité.
- Itération :
- Répéter l'étape de croissance en examinant les nouveaux pixels ajoutés à la région jusqu'à ce qu'il n'y ait plus de pixels voisins pouvant être ajoutés (c'est-à-dire que la région ne peut plus croître).
- Termination :
- Une fois qu'une région a cessé de croître, si des pixels n'ont pas encore été segmentés, choisir une nouvelle graine parmi ces pixels non segmentés et répéter le processus pour former une nouvelle région.
- Le processus se termine lorsque tous les pixels de l'image ont été assignés à une région.
Cette méthode est simple et efficace pour les images avec des régions homogènes bien définies.
4. Autres Méthodes de Segmentation
Outre les méthodes K-moyennes et de croissance de région, plusieurs autres techniques sont utilisées pour la segmentation d'images :
- Seuillage (Thresholding) : Méthode la plus simple, où les pixels sont segmentés en fonction d'un seuil d'intensité. Les pixels dont l'intensité est supérieure au seuil appartiennent à une classe, les autres à une autre. (Ex: Seuillage d'Otsu).
- Détection de Contours (Edge Detection) : Identification des frontières entre les objets et l'arrière-plan en détectant les changements brusques d'intensité. Les opérateurs de Canny, Sobel ou Prewitt sont des exemples.
- Segmentation basée sur les Graphes (Graph-based Segmentation) : L'image est représentée comme un graphe où les pixels sont des nœuds et les arêtes relient les pixels voisins. La segmentation est réalisée en coupant les arêtes de faible poids (indiquant une grande similarité) pour diviser le graphe en sous-graphes. (Ex: Graph Cut, Normalized Cut).
- Méthodes basées sur les Régions Actives (Active Contours ou Snakes) : Des courbes ou surfaces (snakes) initiales sont placées sur l'image et se déforment pour épouser les contours des objets en minimisant une fonction d'énergie.
- Méthode Watershed : Basée sur l'analogie d'une image comme un paysage topographique (les niveaux de gris représentent l'altitude). L'algorithme inonde ce paysage à partir de "bassins versants" (minima locaux) pour trouver les lignes de partage des eaux qui délimitent les régions.
Foire Aux Questions (FAQ) sur le Traitement d'Images
Qu'est-ce qu'un pixel et comment est-il codé ?
Un pixel est la plus petite unité d'une image numérique. Il représente un point unique dans une image. Chaque pixel est codé par une valeur numérique qui détermine son intensité lumineuse ou sa couleur. Le nombre de bits utilisés pour coder un pixel détermine la profondeur de couleur ou le nombre de niveaux de gris possibles. Par exemple, 8 bits par pixel permettent 256 niveaux de gris ou, pour les couleurs, 256 niveaux pour chaque composante (Rouge, Vert, Bleu).
Quelle est la différence principale entre le filtrage médian et le filtrage moyenneur ?
La différence majeure réside dans la méthode de remplacement des pixels. Le filtrage moyenneur (linéaire) remplace un pixel par la moyenne des pixels de son voisinage, ce qui tend à lisser l'image et à réduire le bruit gaussien, mais il peut aussi estomper les détails et les bords. Le filtrage médian (non-linéaire) remplace un pixel par la médiane des pixels de son voisinage, ce qui est particulièrement efficace contre le bruit impulsionnel ("sel et poivre") et préserve mieux les contours et les détails de l'image.
Pourquoi la segmentation d'images est-elle importante ?
La segmentation d'images est cruciale car elle simplifie la représentation d'une image, la rendant plus facile à analyser et à comprendre. Elle permet d'isoler des objets d'intérêt du fond, de délimiter des régions spécifiques et de préparer l'image pour des tâches de traitement de haut niveau, telles que la reconnaissance d'objets, la détection de caractéristiques, la mesure de formes, et l'analyse de scènes en vision par ordinateur.