Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chap5 Filtrage2

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 15

CHAPITRE 6 : TRAITEMENTS LOCAUX : FILTRAGE

LINEAIRE ET NON LINEAIRE.

6.1) Présentation.

Définition :

Un traitement local ou de voisinage est un traitement où chaque pixel de l’image résultat


dépend du pixel de position correspondante et de ses voisins dans l’image ou les images de
départ.
i i

j j
O
p

Opérateur local unaire

i i i

j j j
O
p

Opérateur local binaire (peu employé)

Justification :

Les images possèdent une redondance spatiale importante, ceci implique que les voisins ont
mêmes caractéristiques que le point considéré (niveaux de gris...), il est donc logique de
mettre en oeuvre des traitements basés uniquement sur le voisinage.

Utilités principales :

- Réduction du bruit (filtre moyenneur), par analogie avec le moyennage par accumulation
(redondance temporelle), le filtre moyenneur réduit l’influence du bruit sur des voisins qui
ont pratiquement même niveau de gris.
- Détection de changement de caractéristiques (rupture de redondances) : à l’inverse des
filtres précédents ceux-ci vont détecter des positions où le caractére des voisins est très
différent de celui du point considéré.

Un certain nombre d’opérations locales sont souvent directement associées à des opérations
de filtrage. Le filtrage sera donc étudié dans la suite de ce chapitre. Nous verrons donc tout
d’abord les filtres linéaires non récursifs puis récursifs, les filtres non-linéaires et plus
particulièrement les filtres d’ordre, enfin les particularités d’une mise en oeuvre séquentielles
de ces filtres. Les opérateurs de morphologie mathématique, considérés eux-aussi comme des
traitements locaux, seront vus dans le chapitre suivant.

6.2) Filtrage linéaire non récursif.

6.2.1) Généralités.

Le filtrage linéaire non récursif sur des image peut être vu comme une simple extension en
2D du filtrage numérique ou de la convolution. Nous verrons que les méthodes utilisées
peuvent être différentes car les contraintes ne sont pas les mêmes en ce qui concerne les
images.

a) Définition.

Soit une image I(i,j) ; 0 £ i, j <N

et un filtre 2D h(l,m) ; -K/2 £ l, m £ K/2 (non causal)


K /2 K /2
1
I F (i, j ) 
C
  h( l , m ) I (i  l , j  m )
l  K / 2 m  K / 2

avec C : coefficient de normalisation.

Si le filtre n’est pas carré alors les sommes peuvent être sur K et sur K’.

On peut réécrire l’équation précédente sous la forme d’une équation de convolution en 2D :

IF(i,j) = h(i,j) * I(i,j)

h(i,j) caractérise complètement le filtre : c’est la réponse impulsionnelle du filtre.

De même que pour un filtre 1D, la réponse impulsionnelle d’un filtre 2D correspond à la suite
des coefficients qui sont dans ce cas positionnés sur une matrice. Cette matrice de coefficients
est souvent appelée masque.

On peut remarquer que la causalité n’a pas à être respectée dans une image. Il est même
recommandé pour des raisons de symétrie d’utiliser des filtres centrés sur la position 0.
b) Exemple de filtrage 2D (Moyenne 3x3).

i i

1 1 1
j 1 1 1 j
1 1 1 Filtrage

1
I F ( i, j )  [ 1  I x (i  1, j  1)  1  I x (i  1, j )  1  I x (i  1, j  1)
9
 1  I x (i, j  1)  1  I x (i, j )  1  I x (i, j  1)
 1  I x (i  1, j  1)  1  I x (i  1, j )  1  I x (i  1, j  1) ]

i et j variant de 0 à N-1 si N est la taille de l’image

c) Contraintes de mise en oeuvre.

* Effet de bords :

Le calcul du filtrage ne peut être effectué sans modification sur les bords de l’image. En effet,
les échantillons qui pourraient servir à calculer les nouvelles valeurs sur les bandes
limitrophes des images ne sont pas connus.

Plusieurs possibilités peuvent être envisagées pour résoudre ce problème :

(1) réduction de la taille de l’image résultat,


(2) réduction de la taille du filtre en fonction
des échantillons connus,
(3) mise à 0 des échantillons inconnus,
(4) périodisation de l’image,
(5) filtrage avec effet miroir.

Chaque méthode ne donne qu’une approximation plus ou moins valable sur les bords, cette
zone doit donc être réduite le plus possible sous peine de réduire la zone utilisable de
l ’image.

Ceci implique que les filtres doivent être de taille réduite (nombre de coefficients
réduit).

* Temps de calcul :

Soit un filtre de taille (K+1) par ( K+1) et une image de taille N x N.

Pour mettre en oeuvre l’équation de convolution, il faut :

Nombre de multiplications : (K+1)² x N²

Nombre d’additions : ( (K+1)² - 1) x N²

Le facteur N² peut être un peu plus faible si les effets de bords sont gérés par mise à 0 des
points que l’on ne peut calculer.

Exemple : N=256 ; K/2 = 5.


Ceci donne 7 millions de multiplications et d’additions par image, auquel il faut rajouter les
divisions de renormalisation des résultats si besoin.

Pour réduire le temps de calcul, les filtres doivent être de taille réduite.
De plus, les images doivent prendre des valeurs entières et les coefficients aussi si
possible.

* Calcul du coefficient de normalisation :

Le choix d’un coefficient de normalisation dépend de la structure du filtre.

Si tous les coefficients sont de même signe : C = somme des coefficients.

Sinon suivant l’usage futur de l’image :


- C doit être adapté pour donner un bon effet visuel : c’est à dire que la dynamique de l’image
finale doit être proche de la dynamique maximum.

- C doit être calculé pour que l’image résultat ne dépasse pas la dynamique des traitements
ultérieurs.

- ou C est pris égal à 1 et l’image est stockée en plus grande précision (réel).

* Détermination des coefficients :

C’est le problème fondamental, car les coefficients conditionnent l’action et l’efficacité du


filtre. Nous allons donc consacrer la suite de cette section au calcul des coefficients en
fonction de l’action désirée.

6.2.2) Approche fréqentielle.

Il est intéressant de prendre en compte l’approche fréquentielle car dans la plupart des cas elle
correspond à une expression des besoins :
- filtre passe-bas
- suppression de certaines fréquences...

On peut faire la liaison avec l’approche spatiale décrite par une équation de convolution :

If (i,j) = h (i,j) * I(i,j)

sortie Réponse Image


d’un SLI impulsionnelle initiale
(valeur des
coefficients)
SLI : Système Linéaire Invariant.

On a alors : TF(If) = TF (h *I)

Soit : TF(If) = TF (h) . TF(I)

TF (h) est la réponse en fréquence H(m,n)

La réponse en fréquence du filtre est la transformée de Fourier de la réponse impulsionnelle.


Puisqu’il s’agit de filtre non récursif, elle est donc aussi la T.F. de la suite des coefficients.

Exemple : filtre moyenneur 3x3 111


111
111
Frequency Response : Modulus
10

0
0.5
0.5
0
0

-0.5 -0.5

6.2.3) Propriétés des filtres linéaires.

Ce sont les mêmes que pour le filtrage 1D mais avec des spécificités liées à la 2ème
dimension.

a) Linéarité.

Au niveau de l’image

Si I = I1 + I2

Pour IF = h * I : on a alors IF = IF1 + IF2 avec IF1 = h * I1 et IF2 = h * I2.

Si I = lI1

Pour IF = h * I : on a alors IF = l IF1 avec IF1 = h * I1

Au niveau du filtre

Si h = h1 + h2 et IF = h * I : on a alors I F = IF1 + IF2 si IF1 = h1 * I et I F2 = h2 *


I.

Et si h = lh1 et que IF = h * I : alors IF = l IF1

b) Composition de filtres.

La composition des filtres est réalisée par la convolution des coefficients des filtres.

Si IF = h2 * II et II = h1 * I on obtient IF = (h1 * h2) * I


Ceci permet de réaliser des filtres de taille plus grande à partir de filtres de base.
La mise en oeuvre peut être faite de 2 manières : soit par calcul du filtre global, soit par
filtrage successif.

- Composition de filtres de même forme

Exemple de calcul de composition de 2 filtres 1D à 3 coefficients:

1 1 1
* 1 1 1 C’est une convolution en considérant les filtres
----------------- bordés par des 0.
1 1 1
1 1 1 On réalise une multiplication coefficient à coefficient
1 1 1 puis un décalage.
------------------
1 2 3 2 1 Les coefficients intermédaires de même position sont
ajoutés

Exemple de calcul de composition de 2 filtres 2D 3x3 coefficients :

1 2 3 2 1
1 1 1 1 1 1 2 4 6 4 2
1 1 1 * 1 1 1 -> 3 6 9 6 3
1 1 1 1 1 1 2 4 6 4 2
1 2 3 2 1

La même opération qu’en 1D est effectuée mais en réalisant un décalage dans les 2 directions.
La somme des coefficients est faite pour chaque position.

Les filtres 2D issus d’une composition 2D peuvent donc être mise en oeuvre en 2 fois, ceci
permet de gagner en nombre d’opérations :

Exemple :
Pour un filtre 5x5 issu de la composition de 2 filtres 3x3 :
- en calculant avec le filtre 5x5 : 25 opérations de base sur chaque points de l’image,
- en réalisant 2 opérations de filtrage 3x3 : 2 fois 9 opérations -> 18 opérations.

- Composition de filtres de formes différentes :

On peut définir par exemple une composition entre un filtre 1D vertical et un filtre 1D
horizontal.
La composition de ces filtres permet alors de construire un filtre 2D.

Exemple de composition :

1 1 1 1
1 1 1 * 0 -> 0 0 0
1 1 1 1
Cette composition permet de réaliser de manière simple des filtres qui ont des comportements
différents en horizontal et en vertical.
Elle permet aussi de réaliser des gains de temps de calcul si l’on utilise une suite de 2 filtrages
1D à la place du filtrage 2D.

Comparaison des temps de calcul entre 2 filtres 1D composés et 1 filtre 2D :


(K taille du filtre ; N taile de l’image)

Filtre 2D : (K+1)² N² multiplications ; ((K+1)² -1) N² additions

Filtres 1D : 2 K N² multiplications ; (2K - 2) N² additions

Exemple :

1 filtre 2D 5x5 : 25 opérations de base (multiplication) sur chaque point de l’image


2 filtre 1D de taille 5 : 2 x 5 = 10 opérations.

- Séparation du filtre : noyau séparable.

Comme conséquence de l’opération de composition, tous les filtres 2D qui peuvent se


décomposer suivant un ou plusieurs filtres s’appellent filtres à noyau séparable. Leur mise en
oeuvre doit se faire après décomposition pour obtenir un gain de temps de calcul. L’analyse
de ces filtres est aussi facilitée par cette décomposition.

Il n’est pas évident de reconnaître au premier coup d’oeil un filtre à noyau séparable.
Si le filtre est issu d’une composition horizontale-verticale, les lignes ainsi que les colonnes
ont même progression.

d e f

a ad ae af

b bd be bf

c cd ce cf

6.2.4) Détermination des coefficients de filtres passe-bas.

Ces filtres vont servir à réaliser des opérations de lissage de l’image pour en enlever par
exemple le bruit.

a) Approche intuitive.
Elle consiste à définir des filtres simples en 1D puis de faire une composition (tous les filtres
passe-bas usuels sont à noyau séparable : car ils ont une isotropie de comportement).

Pour des raisons de symétrie dans le comportement, les coefficients des filtres passe-bas
seront en pratique toujours symétriques. Par conséquent, leur réponse en fréquence sera
réelle, et la phase de ces filtres sera nulle quelle que soit la fréquence (ou égale à p si
l’amplitude à certaines fréquences est négative).

Le premier filtre simple et de taille réduite qui vient à l’esprit est un filtre de taille 3
correspondand à une moyenne locale.

Etude du filtre moyenneur (1 1 1).

Nous pouvons tracer la courbe de réponse en fréquences.

Il a un comportement global de passe-bas, mais il existe un lobe vers les hautes fréquences.

3 Frequency Response : Modulus


2.5
2
1.5

1
0.5
0
0 0.1 0.2 0.3 0.4 0.5

3
2
1

0
-1
Frequency R esponse : P hase
-2
-3
0 0.1 0.2 0.3 0.4 0.5

Tout en restant dans la même forme de filtres, on peut en augmenter la taille et étudier le
comportement fréquentiel de ces filtres.

On ne retient que des filtres de taille impaire pour des raisons de positionnement des résultats.

Filtre de taille 7 Filtre de taille 17


Frequency Response : Modulus Frequency Response : Modulus

18
7
16
6
14

5 12

4 10

8
3
6
2
4

1 2

0 0
0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5

Lorsque le nombre de coefficients augmente, les lobes deviennent plus nombreux et se


rapprochent des basses fréquences. Le seul effet est une réduction de la bande passante du
filtre. Cette remarque peut se généraliser : une réduction de bande passante pour une catégorie
de filtres déterminée ne peut être obtenue qu’en augmentant le nombre des coefficients. Ceci
est une conséquence directe de la dualité temps-fréquence.

La suppression des lobes ne peut être envisagée que par modification des valeurs des
coefficients. Pour la mettre en oeuvre aisément, l’étude va être menée en fréquences.
Approche intuitive fréquentielle.

A partir du filtre de taille 3 : (1 1 1), nous allons utiliser la linéarité pour réaliser une
suppression des lobes.

Si l’on désire que la première annulation ne soit qu’à Fe/2 il est alors nécessaire de remonter
la courbe de réponse en fréquences pour que la valeur la plus négative de la sinusoïde se
retrouve à Fe/2. Il convient donc d’ajouter une valeur constante à toutes les fréquences.

Coefficients Fréquences

3
2.5
2
1 1 1
1.5

1
0.5
0
0 0.1 0.2 0.3 0.4 0.5
3
2.5
2

+3/3 1.5

1
0.5
0
0 0.1 0.2 0.3 0.4 0.5

3.5

2.5

1 2 1 2

1.5

0.5

0
0 0.1 0.2 0.3 0.4 0.5

Dans l’espace des coefficients, il faut donc rajouter un dirac d’amplitude 1 à la position 0
(transformée de Fourier inverse de la valeur constante).
On obtient ainsi le filtre 1 2 1

Remarques :

- lors du passage entre les domaines temps et fréquence, il est nécessaire de bien prendre en
compte le coefficient de normalisation,
- le filtre obtenu (1 2 1) est donc le seul filtre passe-bas sans lobe s’annulant pour Fe/2,
- tous les filtres de taille 3 symétriques (possédant des lobes) sont obtenus par translation de
ce filtre.

* Filtres de Taille 5 et plus.

Le même raisonnement peut s’appliquer aux filtres de tailles plus importantes. Dans ce cas, la
latitude est plus grande, on peut donc s’imposer d’autres contraintes. Par exemple :
suppression des lobes, annulation à Fe/2, forme régulière, un seul changement de concavité,
décroissance rapide...

Pour un filtre de taille 5 passe-bas régulier on obtient : (1 4 6 4 1)

On peut remarquer que ce filtre est la composition du précédent (1 2 1) par lui-même.

Si l’on continue avec la même logique on obtient les filtres de tailles plus importantes par
compositions successives avec le filtre 1 2 1. Le résultat donne d’ailleurs des coefficients de
filtres égaux à ceux du triangle de Pascal.
300

Frequency Response : Modulus


250

200
1 8 28 56 70 56 28 8 1

150

100

50

0
0 0.1 0.2 0.3 0.4 0.5

Des filtres de formes différentes peuvent être obtenus en imposant d’autres contraintes.

On peut remarquer que, comme prévu, la bande passante des filtres ainsi obtenus décroit
lorsque le nombre de coefficients augmente. Pour une taille donnée, une réduction de bande
passante ne peut être obtenue qu’au prix de lobes aux hautes fréquences.
Dans de nombreux cas un tel compromis est intéressant. Les coefficients des filtres peuvent
être alors obtenus par d’autres méthodes.

c) Utilisation de fonctions connues.

Une autre possibilité pour déterminer les coefficients de filtres est d’utiliser des fonctions
définies par des équations paramétrables en taille. Ces fonctions ayant naturellement des
comportements en fréquences proche de ceux désirés.

On peut utiliser, par exemple, des familles de fenêtres de pondération qui ont de bonnes
propriétés de régularité.

 2i 
Fenêtre de Hamming : h (i )  0.54  0.46 cos 
 N 
avec N taille du filtre et -N/2 < i < N/2
4
Frequency Response : Modulus

3.5

2.5

1.5

0.5

0
0 0.1 0.2 0.3 0.4 0.5

-1
Frequency Response : Phase
-2

-3
0 0.1 0.2 0.3 0.4 0.5

Fenêtre de Hamming de taille 7.

Cette fonction présente une bonne atténuation et des lobes secondaires très réduits.
 2i 
Fenêtre de Hanning : h (i )  0.5  0.5 cos 

N
avec N taille du filtre et -N/2 < i < N/2
4
Frequency Response : Modulus
3.5

2.5

1.5

0.5

0
0 0.1 0.2 0.3 0.4 0.5

-1 Frequency Response : Phase

-2

-3
0 0.1 0.2 0.3 0.4 0.5

On peut voir que les relations pour aboutir à ces 2 fenêtre de pondération diffèrent peu, mais
que les résultats sont sensiblement différents : la fenêtre de Hamming ayant des amplitudes de
lobes plus réduites.

d) Application en 2D.

Nous avons déterminé les caractéristiques des filtres en 1D. Ils pourraient être utilisés tel quel
sur les images en les considérant comme une suite de signaux. Mais l’effet de filtrage
perpendiculairement à un filtre 1D est beaucoup moins important (ce qui peut paraître logique
car la redondance est moins bien utilisée). L’application en 2D devra donc se faire soit par
composition soit par 2 filtrages successifs en lignes et en colonnes.

Les courbes de réponse en fréquences de filtres 2D sont alors aussi des images que l’on peut
représenter en perspective.
Frequency Response : Modulus

300

250

200

150

100

50

0
0.5
0.5
0
0

-0.5 -0.5

Réponse en fréquences du filtre 7x7 sans lobe.

Vous aimerez peut-être aussi