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.
Introduction Le filtrage est une opération fondamentale en 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.
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 :
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.
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
Réponse fréquentielle d’un filtre La réponse fréquentielle d’un filtre est donnée par : 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 :
En appliquant la formule, on obtient : Un autre exemple est :
En appliquant la formule, on obtient : Matlab permet de visualiser la réponse fréquentielle d’un filtre grâce à la fonction freqz2, Exemple
un autre filtre utile est : en appliquant la formule, on obtient : Exemple 1 Exemple 2 Exemple 3
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.
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 :
fréquentielle : On en déduit la condition sur la réponse Parfois, on souhaite également avoir un filtre à coefficients symétriques par rapport à l’origine :
Synthèse par échantillonnage de la réponse impulsionnelle : on rappelle que l’on a :
h est la réponse impulsionnelle du filtre. 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 :
On peut calculer de manière théorique les coefficients d’un tel filtre :
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 :
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.
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 .6 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.