3. Convolution
  • Convolutions
     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.
  • Les Filtres
     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:
graphic
 
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:
graphicgraphic
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):
graphicgraphicgraphic
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:
graphic
  • 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.
    • Détecteurs de contours

     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.
graphicgraphic
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=graphic