Traitement d'images : Filtrage et Transformations
40 KartenCe document explore les techniques de traitement d'images, y compris la représentation des images, les transformations de niveaux de gris comme l'égalisation d'histogramme, les opérations géométriques, le filtrage par masque pour le débruitage et la détection de contours, ainsi que l'interpolation. Il aborde également les concepts de bruit, de rapport signal/bruit et différentes méthodes de détection de contours.
40 Karten
Introduction au Traitement d'Images Numériques
Le traitement d'images numériques englobe un ensemble de techniques visant à manipuler et analyser des images numériques pour diverses applications, telles que l'amélioration visuelle, l'extraction d'informations ou la compression. Ce domaine est crucial dans de nombreux secteurs, notamment en médecine et en physique.
Les opérations courantes incluent :
Modifications des niveaux de gris
Opérations arithmétiques
Transformations géométriques
Filtrage par masque pour le débruitage, la détection de contours ou l'interpolation
Représentation et Visualisation d'une Image Numérique
Une image numérique est une représentation discrète d'une scène, composée d'une grille de pixels. Chaque pixel a une valeur numérique qui représente son intensité ou sa couleur.
Types d'Images Numériques
Image discrète 8x8 (exemple): Un tableau de 64 pixels (8 lignes par 8 colonnes).
Codage sur 3 bits: Permet niveaux de gris, généralement de 0 à 7.
Échelles de Gris et Palettes (LUT - Look-Up Table)
L'échelle de gris ou la palette (LUT) définit comment les valeurs numériques des pixels sont affichées.
Niveaux de gris: Généralement de 0 (noir) à 255 (blanc) pour une image 8 bits.
Les palettes peuvent transformer ces niveaux en différentes couleurs pour accentuer des détails et faciliter la visualisation des variations minimes de valeurs. Par exemple, une palette "arc-en-ciel" peut assigner des couleurs distinctes à chaque niveau, rendant les changements de luminosité plus perceptibles comme des variations de couleur.
Formats d'Images
Les images numériques sont stockées dans divers formats, tels que raw, TIFF, PNG, et JPEG, chacun ayant ses propres caractéristiques en termes de compression et de qualité.
Profondeur de Couleur (Bit Depth)
La profondeur de couleur détermine le nombre de niveaux d'intensité ou de couleurs qu'un pixel peut afficher.
Image binaire: 2 niveaux (0/1), codée sur 1 bit.
Image à niveaux de gris:
256 niveaux: 8 bits (
unsigned char)65535 niveaux: 16 bits (
short integer)environ 4 milliards de niveaux: 32 bits (
integer)Niveaux flottants: 32 bits (
float), pour des valeurs allant de [-3.4E+38 à 3.4E+38] avec environ 7 chiffres significatifs, utile pour les données scientifiques.
Images couleurs (RGB): Composées de trois images en
niveaux de gris (Rouge, Vert, Bleu), chacune codée sur 8 bits, 16 bits ou 32 bits. La combinaison de ces trois canaux permet de reproduire des millions de couleurs.
R | V | B | Couleur |
|---|---|---|---|
255 | 0 | 0 | |
0 | 255 | 0 | |
0 | 0 | 255 | |
255 | 255 | 0 | |
255 | 0 | 255 | |
0 | 255 | 255 | |
255 | 255 | 255 | |
192 | 192 | 192 | |
128 | 128 | 128 | |
64 | 64 | 64 | |
0 | 0 | 0 |
Visualisation d'une Image comme Fonction
Une image peut être conceptualisée comme une fonction où sont les coordonnées spatiales et est la valeur d'intensité du pixel à cette position. Cette perspective est utile pour comprendre les variations locales et l'application d'opérations mathématiques.
Histogramme d'une Image
L'historgramme d'une image est un graphique qui représente la distribution des pixels en fonction de leur intensité.
Définition et Interprétation
Distribution des pixels: où est le nombre de pixels ayant le niveau d'intensité .
Interprétation probabiliste: La probabilité d'occurrence d'un niveau est , où est le nombre total de pixels. La somme de toutes les probabilités est égale à 1.
Limites de l'Histogramme
L'histogramme ne traduit pas la géométrie de l'image. Des images visuellement très différentes peuvent avoir des histogrammes identiques.
Interprétation Avancée de l'Histogramme
L'histogramme permet d'analyser des caractéristiques importantes de l'image :
Contraste: L'étendue des niveaux de gris. Une image à faible contraste a des niveaux de gris concentrés dans une petite plage (sombre ou claire), tandis qu'une image à haut contraste présente une large distribution des niveaux, couvrant toute la plage dynamique.
Exposition: La luminosité globale de l'image (images sombres vs. claires).
Gamme dynamique: La plage complète des niveaux de gris disponibles.
Un histogramme bimodal suggère la présence de deux groupes d'objets distincts en termes de luminosité.
Calcul de la Moyenne et de la Variance
À partir de l'image:
Moyenne:
Variance:
À partir de l'histogramme:
Moyenne:
Variance:
Rapport Signal sur Bruit (SNR)
Le SNR (Signal-to-Noise Ratio) est une mesure de la qualité d'une image, généralement exprimé en décibels (dB). Il exprime la force du signal par rapport au bruit. Soit l'écart type du bruit, la moyenne de l'image, et l'écart type de l'image sur une région.
Image bornée: Pour une image dans la plage , .
Signal sur bruit dépendant: .
Signal sur bruit indépendant: .
Il est souvent complexe d'estimer précisément le SNR en pratique.
Modifications des Niveaux de Gris
Les modifications des niveaux de gris impliquent l'application d'une transformation à chaque niveau de gris original pour obtenir un nouveau niveau .
Cela permet de modifier l'apparence de l'image sans altérer sa structure spatiale.
Seuillage
Le seuillage est une transformation qui convertit une image à niveaux de gris en une image binaire en assignant un seuil. Les pixels dont l'intensité est supérieure au seuil prennent une valeur (ex: blanc), et les autres une autre valeur (ex: noir).
Amélioration du Contraste par Recadrage
Le recadrage (ou étirement d'histogramme) consiste à étaler la distribution des niveaux de gris d'une image sur toute la plage dynamique disponible. Si une image a des niveaux de gris concentrés dans une petite plage, le recadrage les étire pour améliorer le contraste global. Un histogramme de départ étroit peut être transformé en un histogramme plus large et plus réparti.
Égalisation d'Histogramme
L'objectif de l'égalisation d'histogramme est d'obtenir un histogramme le plus plat possible, ce qui signifie que tous les niveaux de gris sont également représentés.
La répartition uniforme des niveaux de gris maximise l'information au sens de Shannon.
L'information apportée par la réalisation d'un niveau de probabilité est .
La quantité moyenne d'information par niveau est .
Cette quantité est maximale () si et seulement si tous les niveaux de gris ont la même probabilité: .
Méthode de la Fonction de Répartition (CDF)
Pour obtenir un histogramme plat, on cherche une transformation monotone croissante :
Pour les niveaux discrets, la fonction de répartition est approchée par l'histogramme cumulé normalisé (). La transformation est alors: , où représente le nombre de bits par pixel.
En pratique, l'histogramme ne devient pas parfaitement plat, mais il est significativement plus uniforme, améliorant le contraste de l'image.
Opérations Arithmétiques entre Images
Les opérations arithmétiques permettent de combiner deux images pixel par pixel.
Soient deux images et de même taille :
Addition:
Soustraction:
Multiplication:
Division:
Attention aux débordements si le codage des pixels est sur des entiers (ex: dépassement de 255 pour 8 bits).
Un exemple courant est la soustraction d'images, utilisée pour détecter les changements entre deux images ou supprimer le bruit de fond.
Transformations Géométriques
Les transformations géométriques permettent de modifier la position des pixels dans une image sans changer leurs intensités (valeurs).
Objectifs
Correction de déformations dues au système d'acquisition.
Recalage (alignement) d'images.
Principe
Une transformation géométrique associe des coordonnées originales à de nouvelles coordonnées . Les intensités sont préservées, c'est-à-dire que .
Types de Transformations
Rotation: . En notation matricielle, avec .
Changement d'échelle: .
Translation: .
Ces opérations peuvent générer des positions non entières. Des interpolations sont nécessaires pour trouver les valeurs des pixels sur la nouvelle grille discrète.
Des déformations plus complexes, telles que les déformations de perspective, peuvent également être appliquées.
Filtrage par Masque (Convolution ou Corrélation)
Le filtrage par masque est une opération fondamentale pour diverses tâches de traitement d'images.
Principe
Un masque h (ou noyau de convolution) est une matrice de coefficients. Chaque pixel de l'image filtrée est calculé en remplaçant la valeur du pixel central par une somme pondérée des valeurs des pixels dans son voisinage, en utilisant les coefficients du masque.
Exemple de masque 3x3:
f'_{\mathrm{mn}} = a f_{\mathrm{m-1 n-1}} + b f_{\mathrm{m-1 n}} + c f_{\mathrm{m-1 n+1}} + d f_{\mathrm{m n-1}} + e f_{\mathrm{mn}} + f f_{\mathrm{m n+1}} + g f_{\mathrm{m+1 n-1}} + h f_{\mathrm{m+1 n}} + i f_{\mathrm{m+1 n+1}} " data-type="inline-math"> \mathbf{h} = \left( \begin{array}{ccc} \mathbf{a} & \mathbf{b} & \mathbf{c} \\ \mathbf{d} & \mathbf{e} & \mathbf{f} \\ \mathbf{g} & \mathbf{h} & \mathbf{i} \end{array} \right) \quad \mathbf{h}^- = \left( \begin{array}{ccc} \mathbf{i} & \mathbf{h} & \mathbf{g} \\ \mathbf{f} & \mathbf{e} & \mathbf{d} \\ \mathbf{c} & \mathbf{b} & \mathbf{a} \end{array} \right) " data-type="inline-math"> h_0 = \begin{pmatrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix} " data-type="inline-math">$
"Associativité": . La convolution est associative, ce qui est très utile pour composer des filtres.
Corrélation de Masques
La corrélation de masques permet de combiner l'effet de plusieurs masques. Par exemple, si et sont des masques 3x3, leur corrélation résulte en un masque 5x5.
Exemple en 1D: .
Filtres Séparables
Un filtre 2D peut parfois être décomposé en deux filtres 1D (un en ligne et un en colonne ). Si , le filtrage peut être effectué plus efficacement en appliquant d'abord le filtre ligne, puis le filtre colonne (ou inversement). Cela réduit le nombre d'opérations de à multiplications et additions.
Applications du Filtrage par Masque
A. Débruitage (Pré-traitement)
Le débruitage vise à réduire le bruit dans une image tout en préservant les informations importantes.
Filtrage Linéaire (Moyennage)
Remplace chaque point par une moyenne pondérée de ses voisins. Les coefficients du masque déterminent la nature de la moyenne.
Moyennage simple: .
Plus de poids sur le point central: .
Masque Gaussien (isotrope): .
Ces filtres réduisent le bruit mais entraînent souvent une perte de détails et un lissage des contours. L'effet de lissage est plus prononcé avec des masques de plus grande taille (ex: 5x5 vs 3x3).
Filtre Médian
Remplace le point central par la médiane des valeurs de ses voisins dans la fenêtre du masque.
Exemple: Pour une fenêtre : ... 100 80 90 200 110 120 95 ...
Les valeurs sont classées: . La médiane (valeur centrale) est 110. Le pixel d'origine 200 serait remplacé par 110.Le filtre médian conserve mieux les bords que les filtres de moyenne.
Il est optimal pour le bruit impulsionnel (bruit "sel et poivre").
Il est historiquement plus coûteux en calcul, mais cela est moins problématique avec les technologies actuelles.
La taille de la fenêtre varie typiquement de 3x3 à 15x15.
B. Détection de Contours
La détection de contours vise à identifier les régions de changement brusque de niveaux de gris dans une image, ce qui correspond aux "bords" des objets.
Masques Dérivateurs (Gradients)
Les dérivées premières et secondes sont utilisées pour détecter les changements d'intensité. Les masques dérivateurs agissent comme des estimateurs de gradient.
Gradients (différences simples): pour x, pour y.
Gradients (différences centrales): pour x, pour y.
Masques de Roberts (dérivées obliques): \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} \text{ (gradient horizontal) }, \quad \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} \text{ (gradient vertical) } " data-type="inline-math">[-1 \ 0 \ 1]\begin{bmatrix} 1 \\ 2 \\ 1 \end{bmatrix} \begin{bmatrix} -1 & 0 & 1 \\ -1 & 0 & 1 \\ -1 & 0 & 1 \end{bmatrix} \text{ (East / -West) }, \quad \begin{bmatrix} -1 & -1 & -1 \\ 0 & 0 & 0 \\ 1 & 1 & 1 \end{bmatrix} \text{ (South / -North) } " data-type="inline-math">$ Des masques pour les directions diagonales (SE/-NW, SW/-NE) existent également.
Détection des contours par le module de gradient
Les contours sont détectés en calculant le module du gradient:
\begin{bmatrix} 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end{bmatrix} \quad \text{ou} \quad \begin{bmatrix} -1 & -1 & -1 \\ -1 & 8 & -1 \\ -1 & -1 & -1 \end{bmatrix} " data-type="inline-math">$
Les contours sont extraits aux maxima des gradients ou aux passages par zéro des Laplaciens.
C. Interpolation
L'interpolation est utilisée pour estimer les valeurs des pixels dans les zones où les données sont manquantes ou pour changer la résolution d'une image (agrandir ou réduire).
Principe Général
Passer d'une image à (zoom par 2) implique :
Insertion de lignes et colonnes de zéros pour créer des "trous".
Filtrage avec un masque pour combler ces trous en estimant les nouvelles valeurs.
Méthodes d'Interpolation
Interpolation au plus proche voisin:
Chaque nouveau pixel prend la valeur du pixel le plus proche dans l'image originale.
Masque d'exemple pour un zoom 2x (pas un masque de convolution typique, mais une règle d'affectation): .
Cette méthode est rapide mais peut introduire un effet "bloc" (aliasing).
Exemple avec la matrice (pour un seul canal couleur) transformée en après dilatation et duplication.
Interpolation bilinéaire:
La valeur d'un nouveau pixel est obtenue par une moyenne pondérée des quatre pixels originaux les plus proches.
Peut être réalisée par un masque de convolution: .
Fournit un lissage meilleur que le plus proche voisin, mais peut estomper légèrement les détails.
Peut être implémentée de manière séparable pour l'efficacité.
Exemple pour un point entre quatre pixels en utilisant des coefficients et .
L'interpolation bilinéaire est couramment utilisée pour les zooms où les artefacts "blocs" du plus proche voisin sont inacceptables, offrant un compromis entre qualité et complexité computationnelle.
Conclusion
Le traitement des images numériques est un vaste domaine avec de nombreuses applications. La compréhension des différentes représentations d'images (binaire, niveaux de gris, couleur), l'analyse d'histogrammes pour évaluer le contraste et la luminosité, ainsi que la maîtrise des opérations pixel-par-pixel et des filtrages par masque sont essentielles. Ces techniques permettent non seulement d'améliorer la qualité visuelle des images mais aussi d'en extraire des informations pertinentes pour des analyses plus poussées.
Quiz starten
Teste dein Wissen mit interaktiven Fragen