Vous êtes sur la page 1sur 24

Chapitre 2 : Filtrage

Professeur. Mohammed Talibi Alaoui


Dpartement Mathmatiques et Informatique, Oujda
Objectifs :

Prsenter les principes de base du
filtrage.

Illustrer ses applications potentielles
travers quelques exemples.
1. Introduction
Le filtrage est une opration fondamentale
en traitement dimages. Il permet :

Damliorer la perception de certains dtails.
De rduire le bruit.
De compenser certains dfauts du capteur.
etc
Nous allons tout dabord tudier :

Le filtrage linaire et les outils danalyse et de
synthse associs.

Nous verrons que le filtrage peut galement
tre ralis directement dans le domaine
frquentiel, grce la transform de Fourier
dune image.

2. Principe du filtrage linaire
Considrons une image I et un filtre bidimensionnel
h.

Le filtrage de limage I par le filtre h est une image F
dont les luminances sont donnes par :

+ + =
b a
b y a x I b a h y x F
,
) , ( ) , ( ) , (
Si le filtre est de taille (2n+1)*(2n+1) alors les indices
a et b varient de n + n.

Le filtre peut tre vu comme une convolution,
condition de faire subir au filtre une symtrie par
rapport lorigine.

) , ( ) , (
) , )( * ( ) , (
) , ( ) , ( ) , (
) , ( ) , ( ) , (
,
,
d c h d c g
avec
y x I g y x F
d y c x I d c g y x F
d y c x I d c h y x F
d c
d c
=
=
=
=


Matlab nous fournit une fonction qui ralise le
filtrage dune image.

La fonction filter2 prend en paramtres le filtre
et limage filtrer.

Exemple
3. Rponse frquentielle dun filtre
La rponse frquentielle dun filtre est donne
par :

+
=
2
,
1
)
2 2 1 1
(
)
2
,
1
( )
2
,
1
(
n n
n w n w j
e n n h w w H
Ou w
1
et w
2
varient de + . Les variables w
1
et w
2
reprsentent respectivement la frquence ligne et la
frquence colonne.
Prenons comme exemple le filtre h
1
avec :


) 1
2
cos 2 )( 1
1
cos 2 ( 9 )
2
,
1
( + + = w w w w H
|
|
|
|
.
|

\
|

+

=
1 1 1
1 8 1
1 1 1
1
h
En appliquant la formule, on obtient :


Un autre exemple est :
|
|
|
|
.
|

\
|

+

=
1 1 1
1 9 1
1 1 1
2
h

En appliquant la formule, on obtient :



Matlab permet de visualiser la rponse frquentielle
dun filtre grce la fonction freqz2,

Exemple

) 1 cos 2 )( 1 cos 2 ( 10 ) , ( 2 1 2 1 2 + + = w w w w H
un autre filtre utile est :





en appliquant la formule, on obtient :


Exemple 1
Exemple 2
Exemple 3





) 1 cos 2 )( 1 cos 2 )( 9 / 1 ( ) , (
2 1 2 1 3
+ + = w w w w H
|
|
|
|
.
|

\
|
+ + +
+ + +
+ + +
=
1 1 1
1 1 1
1 1 1
(1/9)
3
h
Dune manire gnrale :

Un passe-haut accentue les contours et le
bruit,

Un passe-bas rduit le bruit et adoucit les
contours.
4. Synthse dun filtre partir
dune rponse frquentielle
Introduction :
Calculer les coefficients dun filtre partir
dune rponse frquentielle dsire.

Normalisation :
On souhaite que le filtrage ne modifie pas
la valeur moyenne de limage.

La moyenne de limage filtre F est donne
par :


On en dduit une condition sur les coefficients
du filtre :



I E n n h F E
n n
(

=

2 1
,
2 1
) , (
1 ) , (
2 1
,
2 1
=

n n
n n h
On en dduit la condition sur la rponse
frquentielle :


Parfois, on souhaite galement avoir un filtre
coefficients symtriques par rapport lorigine :


1 ) 0 , 0 ( = H
) , ( ) , ( ) , (
2 1 2 1 2 1
n n n n h n n h =


Synthse par chantillonnage de la rponse
impulsionnelle :

on rappelle que lon a :


) (
2 1
,
2 1
2
2 1 1
2 1
) , ( ) , (
n w n w j
n n
e n n h w w H
+

=
Cette expression correspond une dcomposition en
srie de Fourier. Les coefficients de la dcomposition de
H en srie de Fourier sont donnes par :




h est la rponse impulsionnelle du filtre.
On souhaite synthtiser un passe-bas, tel que :





} }
+

+
=
t
t
t
2 1
) (
2 1
2
2 1
2 2 1 1
) , ( ) ) 2 /( 1 ( ) , ( dw dw e w w H n n h
n w n w j
on w w H
a w et a w pour w w H
sin 0 ) , (
1 ) , (
2 1
2 1 2 1
=
< < =
On peut calculer de manire thorique les coefficients
dun tel filtre :



1
2
2
1
2
2
2 1
2 1 2 1
sin

sin
) , (
...
)) 2 /( 1 ( ) , (
2 2
1 1
an
an
an
an
a
n n h
dw dw e e n n h
n jw
n jw
a
a
a
a
t
t
=
=
} }
+

Synthse par chantillonnage de frquence



Le principe consiste indiquer les valeurs
souhaites de H(w
1
,w
2
) sur une grille (w
1
, w
2
)
et en dduire le filtre h(n
1
,n
2
).

Matlab ralise cette synthse avec la fonction
fsamp2.

Exemple : Synthse par chantillonnage de
frquence
Dans cet exemple, on synthtise un filtre dont la
rponse frquentielle souhaite est :







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|

\
|
=
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
H


5. Utilisation de la Transforme de Fourier :

Il est galement possible de raliser le filtrage dans le
domaine frquentiel.

Pour cela, on multiplie la transforme de Fourier de
limage par le conjugu de la rponse frquentiel du
filtre.




Soit I limage source, F limage filtre, h le filtre, et I, F,
H, les transformes de Fourier.
On a donc :


La transforme de Fourier discrte est donne par :


Il est de mme pour H et pour F.

Matlab calcule la transforme de Fourier discrte
grce la fonction fft2 (ifft2). Une autre fonction
utile est fftshift.
) , ( ) , ( ) , ( ) , (
) , ( ) , ( ) , ( ) , )( * ( ) , (
*
v u H y x G ou y x h y x g ou
v u I v u G v u F y x I g y x F
= =
= =

+
=
y x
M uy N ux j
e y x I v u I
,
) / / ( 2
) , ( ) , (
t
6. Filtre mdian
Filtre non linaire.
Capable de rduire certains types de bruits
en dgradant trs peu les contours.
Efficace pour liminer les bruits qui affectent
seulement un petit nombre de pixels.
Le filtre mdian affecte un pixel la valeur
mdiane des intensits dans son voisinage.


.7 .5 .3
.4 .2 .7
.6 .5 .2
Le filtre mdian range par ordre croissant les intensits
du voisinage :
.2 .2 .3 .4 .5 .5 .6 .7 .7
Il affecte au pixel central lintensit qui se trouve au
milieu du rangement ci-dessus.
Exemple : Le filtre mdian prserve les contours.