FILTRAGE NON-LINEAIRE
D’IMAGES
Opérateurs de voisinage
colonne T colonne
c c
ligne ligne
l l
V
image initiale f imagine traitée g
((
g ( l ,c ) = T f V( l ,c ) ))
La nouvelle valeur de chaque pixel de l’image traitée (finale) est calculée
en fonction des valeurs des pixels localisés dans un voisinage spatial
(de taille réduite par rapport à la taille de l’image) du pixel dans l’image
originale.
Opérateurs de voisinage
((
g ( l ,c ) = T f V( l ,c ) ))
La définition de l’opérateur implique la spécification :
du voisinage V(l,c)
de la fonction T appliquée aux pixels voisins
Classification selon T :
Filtres linéaires
Filtres non-linéaires :
Filtres adaptatifs
Filtres d’ordre
Filtrage linéaire de lissage - conclusions
+Atténuation du bruit – augmente avec la taille du voisinage
- Induction de l’effet de flou – augmente avec la taille du
voisinage
FILTRES ADAPTATIFS
Filtres adaptatifs
La valeur finale de chaque pixel est toujours calculée comme une
combinaison linéaire de ses voisins !
La différence par rapport au filtres linéaires est que les poids ne
sont plus précalculés !
Les poids wmn sont calculés indépendamment pour chaque pixel de
l’image, en fonction des valeurs des pixels voisins !
Filtrage adaptatif : implantation
g (l , c) = ∑w
( m , n )∈V
mn f (m + l , n + c)
Pour chaque pixel de l’image (l,c):
- choisir les pixels voisins f(m+l,n+c) avec
- calculer les poids wmn en fonction des voisins f(m+l,n+c)
- calculer la combinaison linéaire entre les valeurs des pixels et les
poids correspondants du masque
- stocker la valeur obtenue aux coordonnées (l,c) dans l’image
finale
Calcul de poids – lignes directrices
On doit garder l’atténuation du bruit :
dans les zones uniformes (valeurs des voisins f(l+m,c+n)
plus ou moins dans la même plage de valeurs) appliquer la
moyenne.
On ne doit pas altérer les contours :
dans les zones de frontière (valeurs des voisins f(l+m,c+n)
dans deux plages de valeurs différentes) :
- soit ne pas moyenner ;
- soit moyenner “du bon côté de la frontière”.
Le filtre bilatéral
Le filtre adaptatif le plus célèbre.
Les poids wmn sont calculés à travers une double exponentielle :
Les quantités amn sont ensuite normalisées :
Le filtre bilatéral : calcul des poids
Il y a deux composantes dans le calcul des poids non-normalisés amn :
- la composante vmn, qui dépend de la valeur du voisin
- la composante dmn, qui dépend de la position relative du
voisin par rapport au pixel central
Le filtre bilatéral : calcul des poids
La composante vmn est d’autant plus faible que la différence entre la
valeur du voisin f(l+m,c+n) et celle du pixel central f(l,c) est
plus importante !
Effet attendu : seuls les voisins dont la valeur est proche de celle du
pixel central contribueront au calcul de sa valeur finale.
La quantité σv est un paramètre du filtre.
Le filtre bilatéral : calcul des poids
La composante dmn est d’autant plus faible que la position du voisin
f(l+m,c+n) est plus éloignée du centre (l,c) !
Effet attendu : les voisins plus proches du point de vue géométrique
auront un poids plus grand : effet pas très important !
La quantité σd est un paramètre du filtre.
Action du filtre bilatéral : zones de frontière
akl
wkl
Action du filtre bilatéral : zones de frontière
akl
wkl
Le résultat du filtre moyenne :
Action du filtre bilatéral : zones uniformes
akl
wkl
Le résultat du filtre moyenne :
Filtre bilatéral - résultats
Original
Filtre bilatéral - résultats
Bruitée
Filtre bilatéral - résultats
Moyennée 5x5
Filtre bilatéral - résultats
Bilateral 5x5
Filtre bilatéral – influence des paramètres
Quelle influence ont les paramètres σv et σd ?
σv = 40
σv = 1
σv = 500
Filtre bilatéral – influence des paramètres
Comportement du filtre bilatéral en fonction de σv :
Filtre identité : Filtre moyenne :
- frontières - bruit atténué au
préservées au maximum
maximum - effet de flou
- pas d’atténuation fort
du bruit
Filtre bilatéral – influence des paramètres
Bilateral 5x5 – σv = 40
Filtre bilatéral – influence des paramètres
Bilateral 5x5 – σv = 5
Filtre bilatéral – influence des paramètres
Bilateral 5x5 – σv = 200
FILTRES D’ORDRE
(rank-order filters)
Filtres d’ordre
Toujours des opérateurs de voisinage.
Basés sur l’opération de tri des valeurs des voisins.
La position relative des voisins par rapport au pixel central est ignorée :
- seule leur valeur est prise en compte
- l’ensemble des pixels voisins est traité comme une séquence 1D
avec
Image traitée
Filtres d’ordre
La valeur f(i) s’appelle la statistique d’ordre i :
- f(1) -> le minimum
- f(N) -> le maximum
La sortie du filtre d’ordre (c.a.d. la nouvelle valeur du pixel central) :
- soit une des statistique d’ordre;
- soit une combinaison entre les statistiques d’ordre.
Le filtre médian
Le filtre d’ordre le plus simple et le plus célèbre.
Ressort la valeur du pixel localisé au milieu de la séquence triée.
En supposant le voisinage utilisé de taille impaire (N = 2k+1) :
Si N = 2k (quasiment jamais en pratique) :
Le filtre médian
{78,95,89,93,89,205,87,214,220}
tri
{78,87,89,89,93,95,205,214,220}
Le filtre médian
{95,89,188,89,205,207,214,220,205}
tri
{89,89,95,188,205,205,207,214,220}
Le filtre médian
Ne crée pas des nouvelles valeurs => meilleure préservation des
frontières (effet de flou réduit).
Performances excellentes dans l’élimination du bruit impulsionnel
(bruit sel-et-poivre).
Modèle du bruit impulsionnel :
uniquement un pourcentage (réduit) de pixels est affecté ;
les pixels affectés sont fortement affectés (points aberrants)
Bruit impulsionnel
Filtre médian sur bruit impulsionnel - résultat
Filtre médian sur bruit additif - résultat
Filtre médian 3x3 Filtre moyenne 3x3
Le filtre médian pondéré
Utilise un masque qui indique combien de fois le pixel respectif est
répété dans la séquence à trier.
Exemple : W= => le pixel central est pris 5 fois !
{78,95,89,93,89,205,87,214,220}
{78,95,89,93,89,89,89,89,89,205,
87,214,220}
tri
{78,87,89,89,89,89,89,89,93,95,
205,214,220}
Filtre médian pondéré - résultats
Filtre médian Filtre médian pondéré
Filtres d’ordre de domaine : filtres LUM
LUM –Lower, Upper, Middle
= le pixel traité
Filtre LUM de lissage :
Ex : j = 3
Filtres d’ordre de domaine : filtres LUM
Filtre LUM d’accentuation :
Ex : j = 3
Filtres d’ordre de domaine : résultats
K=9 (3 x 3) accentuation, j=3 accentuation, j=1
(à fond)
lissage, j=3 lissage, j=5
(médian)