Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui Département Mathématiques et...

Preview:

Citation preview

Chapitre 2 : Filtrage

Professeur. Mohammed Talibi Alaoui

Département Mathématiques et Informatique, Oujda

Objectifs :

Présenter les principes de base du

filtrage.

Illustrer ses applications potentielles à

travers quelques exemples.

1. Introduction

Le filtrage est une opération fondamentaleen traitement d’images. Il permet :

D’améliorer la perception de certains détails.

De réduire le bruit.

De compenser certains défauts du capteur.

etc…

Nous allons tout d’abord étudier :

Le filtrage linéaire et les outils d’analyse et de

synthèse associés.

Nous verrons que le filtrage peut également

être réalisé directement dans le domaine

fréquentiel, grâce à la transformé de Fourier

d’une image.

2. Principe du filtrage linéaire

Considérons une image I et un filtre bidimensionnel

h.

Le filtrage de l’image I par le filtre h est une image F

dont les luminances sont données par :

ba

byaxIbahyxF,

),(),(),(

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 symétrie par

rapport à l’origine.

),(),(

),)(*(),(

),(),(),(

),(),(),(

,

,

dchdcg

avec

yxIgyxF

dycxIdcgyxF

dycxIdchyxF

dc

dc

Matlab nous fournit une fonction qui réalise le

filtrage d’une image.

La fonction filter2 prend en paramètres le filtre

et l’image à filtrer.

Exemple

3. Réponse fréquentielle d’un filtre

La réponse fréquentielle d’un filtre est donnée

par :

2,1

)2211()2,1()2,1(nn

nwnwjennhwwH

Ou w1 et w2 varient de – π à + π. Les variables w1 et w2

représentent respectivement la fréquence ligne et la

fréquence colonne.

Prenons comme exemple le filtre h1 avec :

)1 2cos 2)(1 1cos 2( 9 )2 ,1( wwwwH

1 1 1

1 8 1

1 1 1

1h

En appliquant la formule, on obtient :

Un autre exemple est :

1 1 1

1 9 1

1 1 1

2h

En appliquant la formule, on obtient :

Matlab permet de visualiser la réponse fréquentielle

d’un filtre grâce à la fonction freqz2,

Exemple

)1 cos 2)(1 cos 2( 10 ) ,( 21212 wwwwH

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(),(21213 wwwwH

1 1 1

1 1 1

1 1 1

(1/9) 3h

D’une manière générale :

Un passe-haut accentue les contours et le

bruit,

Un passe-bas réduit le bruit et adoucit les

contours.

4. Synthèse d’un filtre à partir d’une réponse fréquentielle

Introduction :

Calculer les coefficients d’un filtre à partir

d’une réponse fréquentielle désirée.

Normalisation :

On souhaite que le filtrage ne modifie pas

la valeur moyenne de l’image.

La moyenne de l’image filtrée F est donnée

par :

On en déduit une condition sur les coefficients

du filtre :

IEnnhFEnn

21,21 ),(

1),(21,

21 nn

nnh

On en déduit la condition sur la réponse

fréquentielle :

Parfois, on souhaite également avoir un filtre à

coefficients symétriques par rapport à l’origine :

1)0,0( H

),(),(),( 212121 nnnnhnnh

Synthèse par échantillonnage de la réponse

impulsionnelle :

on rappelle que l’on a :

)(21

,21

2211

21

),(),(nwnwj

nnennhwwH

Cette expression correspond à une décomposition en

série de Fourier. Les coefficients de la décomposition de

H en série de Fourier sont données par :

h est la réponse impulsionnelle du filtre.

On souhaite synthétiser un passe-bas, tel que :

21

)(21

221

2211),())2/(1(),( dwdwewwHnnh nwnwj

onwwH

awetawpourwwH

sin 0 ) ,(

1 ) ,(

21

2121

On peut calculer de manière théorique les coefficients

d’un tel filtre :

1

2

2

12

2

21

2121

sin

sin ) ,(

...

))2/(1() ,( 2211

anan

ananannh

dwdweennhnjwnjwa

a

a

a

Synthèse par échantillonnage de fréquence

Le principe consiste à indiquer les valeurs

souhaitées de H(w1,w2) sur une grille (w1, w2)

et à en déduire le filtre h(n1 ,n2).

Matlab réalise cette synthèse avec la fonction

fsamp2.

Exemple : Synthèse par échantillonnage de

fréquence

Dans cet exemple, on synthétise un filtre dont la réponse fréquentielle souhaitée 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 Transformée de Fourier :

Il est également possible de réaliser le filtrage dans le

domaine fréquentiel.

Pour cela, on multiplie la transformée de Fourier de

l’image par le conjugué de la réponse fréquentiel du

filtre.

Soit I l’image source, F l’image filtrée, h le filtre, et I, F,

H, les transformées de Fourier.

On a donc :

La transformée de Fourier discrète est donnée par :

Il est de même pour H et pour F.

Matlab calcule la transformée de Fourier discrète

grâce à la fonction fft2 (ifft2). Une autre fonction

utile est fftshift.

),(),( ),( ),(

),(),( ),( ),)(*( ),(

*vuHyxGouyxhyxgou

vuIvuGvuFyxIgyxF

yx

MuyNuxjeyxIvuI,

)//(2),(),(

6. Filtre médian

• Filtre non linéaire.

• Capable de réduire certains types de bruits

en dégradant très peu les contours.

• Efficace pour éliminer les bruits qui affectent

seulement un petit nombre de pixels.

• Le filtre médian affecte à un pixel la valeur

médiane des intensités dans son voisinage.

.7 .5 .3

.4 .2 .7

.6 .5 .2

Le filtre médian range par ordre croissant les intensités

du voisinage :

.2 .2 .3 .4 .5 .5 .6 .7 .7

Il affecte au pixel central l’intensité qui se trouve au

milieu du rangement ci-dessus.

Exemple : Le filtre médian préserve les contours.

Recommended