Filtrage contextuel non-linéaire de Liu

 
 
 
 
 

Résultats

Un premier exemple

Pour illustrer l'algorithme, notre premier choix fût bien sûr Sainte Léna, patronne des traiteurs d'images, pour :

Si le résultat est globalement bon, il y a cependant un certain nombre d'imperfections, au sens de la détection de contour. Ainsi, le haut du chapeau est manquant, car il a été homogénéisé avec le fond durant le filtrage de Liu. La valeur de alpha, mesure de confiance, était certainement trop élevée pour distinguer le haut du chapeau en contre-jour.

Variation du nombre d'itérations

Dans cet exemple, on avait choisi : La différence pixel à pixel a été calculée comme la valeur absolue de la différence d'intensité en chaque pixel, puis a été "mappée" sur une palette de gris à 256 nuances.
 
11 itérations
30 itérations
Différence pixel à pixel

Comme on peut le constater, il existe toujours des différences, même si celles-ci sont relativement faibles (ainsi, la moyenne spatiale de l'image différence est de 4.6, son écart-type spatial de 3.2). Ceci montre que l'algorithme n'atteint pas un état stable après 11 itérations, mais que les itérations suivantes n'apporte que des variations réduites et justifie par là-même l'arrêt à la 11ième itération.
 

Exemple d' images bruitées

La première ligne a été obtenue en bruitant l'image du premier exemple à l'aide d'un bruit gaussien. Ce bruit gaussien est centré sur le gris moyen et on a définit un "rapport signal à bruit" SNR, comme le rapport de l'intensité maximale du signal divisé par l'amplitude du bruit. C'est cette mesure qui a été reportée ici.
 
SNR = 1
SNR = 0.5
SNR = 0.2

Bien sûr, il y a une détérioration des résultats avec l'augmentation de l'importance du bruit, mais les résultats semblent cependant relativement robustes au bruit, du fait de l'utilisation de l'information contextuelle.
 

Filtrage de Sobel

La deuxième étape, après le lissage, est un filtrage pour détecter les maxima du gradient. Celui qui a été retenu est le filtrage de Sobel. Après ce filtrage se pose le problème de l'interprétation de l'image. En effet, l'image Sobelisée brute n'est pas satisfaisante d'un point de vue détection de contours, comme le montre l'exemple ci-dessous, où on avait choisi :
Image originale
Image traitée par le filtre de Liu
Image Sobelisée brute
Image Sobelisée modifiée

Une solution est alors de modifier l'histogramme de l'image pour éviter les maxima locaux non-significatifs. Ainsi, dans l'exemple précédent, l'histogramme de l'image Sobelisée brute était :
 

Histogramme de l'image brute

On a filtré l'image, avec la transformation I-> I' telle que :

Le résultat est l'image sobelisée modifiée ci-dessus. Comme on peut le voir, le résultat n'est cependant pas exempt de défauts : Il est difficile, par seuillage de l'histogramme de faire disparaitre les détails dans la mèche de cheveu du front, même si celle-ci parait composée de zones uniformes. De plus, certains contours, délimitant des zones homogènes dans l'image traitée par le filtre de Liu, apparaissent sous forme discontinue et, à limite, sous forme de "poussière", comme c'est le cas pour les aplats de gris sur la joue droite, et l'ombre de l'avant-bras gauche.
 
 
  
Précédent
Suivant
Algorithme
Discussions et comparaisons