Certaines
technologies conduisent à l'acquisition d'images peu
contrastées, avec des détails peu visibles (rayon x,
rayons g dans l'industrie
...). Il faut donc pouvoir renforcer les contours et les hautes
fréquences spatiales.
Pour d'autres, on obtient des échelles
dynamiques excessives (radiographie). Il faut donc pouvoir
réduire la dynamique sans masquer les détails.
Les problèmes de transmission,
d'amplification génèrent parfois ce qu'on apelle du
"bruit".
Le bruit caractérise les parasites ou
interférences d'un signal, c'est-à-dire les parties du
signal déformées localement. Ainsi le bruit d'une image
désigne les pixels de l'image dont l'intensité est
très différente de celles des pixels voisins.
Le bruit peut provenir de différentes causes
:
* Environnement lors de
l'acquisition
* Qualité du
capteur
* Qualité de
l'échantillonnage
Pour atténuer/supprimer ce bruit ou relever
les détails, on utilise des outils mathématiques tel que
la convolution, traitée sous la forme de filtres.
Il existe 2 sortes de filtres:
- Les filtre d'atténuation ou
d'accentuation
- Les détecteurs de contours
Pour toutes les opérations de convolution il
sera nécessaire au préalable de convertir l'image couleur
en image de niveaux de gris.
Un filtre est une
transformation mathématique permettant, pour chaque pixel de
la zone à laquelle il s'applique, de modifier sa valeur en
fonction des valeurs des pixels avoisinants, affectées de
coefficients.
Le filtre est représenté par un tableau
(matrice), caractérisé par ses dimensions et ses
coefficients, dont le centre correspond au pixel concerné. Les
coefficients du tableau déterminent les propriétés
du filtre. Voici un exemple 3 x 3 du filtre passe-haut:
Ainsi le produit de la matrice image f(x,y),
généralement très grande car représentant
l'image initiale (tableau de pixels) par le filtre h(x,y) donne une
matrice correspondant à l'image traitée g(x,y).
On distingue généralement les types de
filtres suivants :
-
Les filtres passe-bas, consistant à atténuer les
composantes de l'image ayant une fréquence haute (pixels
foncés). Ce type de filtrage est généralement
utilisé pour atténuer le bruit de l'image, c'est la
raison pour laquelle on parle habituellement de lissage. Le
résultat de ce filtre est une image plus floue.
Exemple: l'image de départ est en couleurs
avec la présence de points noirs (le bruit). Après
filtrage, il n'y a plus de bruit mais l'image est floue:
Image originale bruitée; image
filtrée.
Le filtre médian ou filtre
moyenneur est un type de filtre passe bas. Son fonctionnement
est différent et consiste à remplacer la valeur d'un
pixel par la valeur médiane de l'ensemble des pixels de son
voisinage. Résultat: l'image est moins floue, on peut faire
disparaître un bruit plus intense mais les détails
disparaissent (on le voit au niveau des yeux):
Image originale bruitée; image
filtrée (size 3); image filtrée (size 6).
-
les filtres passe-haut, à l'inverse des passe-bas,
atténuent les composantes de basse fréquence de l'image
et permettent notamment d'accentuer les détails et le
contraste, c'est la raison pour laquelle le terme de "filtre
d'accentuation" est parfois utilisé comme le montre l'image
suivante:
-
les filtres passe-bande permettant d'obtenir la
différence entre l'image originale et celle obtenue par
application d'un filtre passe-bas.
-
les filtres directionnels appliquant une transformation
selon une direction donnée.
Il existe aussi des
filtres qui détectent les contours des éléments
d'une image :
L’algorithme de Sobel est un opérateur
utilisé en traitement d'image pour la détection de
contours. Il s'agit d'un des opérateurs les plus simples qui
donne des résultats corrects.
Pour faire simple, l'opérateur calcule le
gradient de l'intensité de chaque pixel. Ceci indique la
direction de la plus forte variation du clair au sombre, ainsi que
le taux de changement dans cette direction. On connaît alors
les points de changement soudain de luminosité, correspondant
probablement à des bords, ainsi que l'orientation de ces
bords.
En termes mathématiques, le gradient d'une
fonction de deux variables (ici l'intensité en fonction des
coordonnées de l'image) est un vecteur de dimension 2 dont les
coordonnées sont les dérivées selon les directions
horizontale et verticale. En chaque point, le gradient pointe dans
la direction du plus fort changement d'intensité, et sa
longueur représente le taux de variation dans cette
direction.
Le gradient dans une zone d'intensité
constante est donc nul. Au niveau d'un contour, le gradient
traverse le contour, des intensités les plus sombres aux
intensités les plus claires.
L'opérateur utilise des matrices de
convolution. La matrice (généralement de taille 3×3)
subit une convolution avec l'image pour calculer des approximations
des dérivées horizontale et verticale.
Image originale et image
filtrée.
Pour chaque pixels P(x,y) d'une image f les
dérivées en x et y sont :
Ax=f[x+1,y]-I[x,y]
Ay=f[x,y+1]-I[x,y]
ce qui revient à convoluer l'image avec les
masques :
Hx=[1..1] et Hy=