Vous êtes sur la page 1sur 67

Convolution et Filtrage

Année 2023/2024
Introduction

▶ En traitement d’images, le filtrage est une opération


fondamentale.
▶ Pourquoi filtrer une image ?
▶ Pour réduire le bruit dans l’image (sujet de ce cours)
▶ Pour détecter les contours d’une image (sujet du
prochain cours)
▶ Pour supprimer des hautes fréquences
▶ ...

1/49
Définition du bruit

▶ Phénomène parasite aléatoire (suivant une distribution


de probabilité connue ou non) dont les origines sont
diverses (capteur, acquisition, lumière, ...)
▶ Bruit additif : impulsionnel et gaussien
▶ Bruit multiplicatif : grain ou speckle en échographie
▶ Un bruit est décrit de manière statistique :
▶ Loi de probabilité :
Bruit gaussien (loi de Gauss)
Bruit poissonien (loi de Poisson)
Bruit impulsionnel (dit "poivre et sel")
▶ Moments :
Ordre 1 (moyenne)
2/49
Ordre 2 (autocorrélation, variance)
Exemples d’images bruitées

▶ Dans le cas du filtrage linéaire, on considère que le bruit


est additif, si fb est l’image alors on peut l’écrire de la
forme : fb (i, j) = f (i, j) + b(i, j)
▶ Hypothèse fondamentale pour la réduction du bruit :
▶ Signal utile et bruit ont des composantes fréquentielles
différentes
▶ Signal utile ↔ basses fréquences
▶ Bruit ↔ hautes fréquences 3/49
Bruit impulsionnel

▶ Le bruit impulsionnel (ou poivre et sel) ne prend que


deux valeurs : 0 ou M (niveau de gris maximum
représentable de l’image)
▶ En un point la présence ou non de bruit impulsionnel est
aléatoire

4/49
Bruit gaussien

▶ En chaque point, une valeur aléatoire (positive ou


négative) est ajoutée à l’intensité
▶ Le bruit gaussien est caractérisé par la moyenne et
l’écart-type de ces valeurs
▶ Si la moyenne est nulle, il n’y a pas de biais : la moyenne
des intensités de l’image est préservée

5/49
Objectifs

▶ Atténuer le bruit et faire disparaître les irrégularités, les


défauts et les perturbations de l’image initiale.
▶ Deux approches :
▶ Filtrage spatial : concerne les techniques qui traitent le
niveau de gris (s’attachent aux voisinages). Techniques
du domaine spatial
▶ Filtrage fréquentiel : Opèrent dans le domaine des
fréquences (transformée de Fourier)

6/49
Les techniques du domaine spatial
▶ Le filtrage est exprimé par une transformation T de
l’image f en une image g :
g(x , y ) = T [f (x , y )]
T dépend du voisinage du pixel p(x , y )
▶ Si le voisinage du pixel p(x , y ) qu’on notera souvent
V (p) ne contient que le pixel lui même alors T devient
une transformation de l’intensité s = T (r ) :
traitement point
▶ Si V (p) est plus grand, ces techniques utilisent les pixels
voisins appelés aussi masques pondérés par des
coefficients, les valeurs de ces coefficients déterminent la
classe du filtre.
▶ On distingue deux classes : les filtres linéaires et les
filtres non linéaires suivant l’opérateur appliqué est 7/49
linéaire ou non,
La convolution
▶ Contrairement aux manipulations d’histogramme (opérations
ponctuelles sur le pixel), le filtrage est un produit de
convolution qui fait intervenir le voisinage du pixel.
▶ Le principe du filtrage linéaire est de remplacer le niveau
d’un pixel par une combinaison linéaire des niveaux des
pixels voisins.
▶ Un filtre d’image est défini par une fenêtre carrée de
dimension impaire (souvent 3 ou 5) qui se déplace sur
l’image en remplaçant la valeur de chaque pixel de l’image
par le résultat d’une transformation portant sur le pixel et
ses voisins.

8/49
La convolution

Rappels sur la convolution


▶ Soit f une image numérique et soit h une fonction de
[x1 , x2 ] × [y1 , y2 ]
La convolution de f par h est donnée par :
y2
x2 X
X
(f ∗ h)(x , y ) = h(i, j).f (x − i, y − j)
i=x1 j=y1

La fonction h est dite noyau de convolution.

▶ Propriétés :
Commutativité : f ∗ h = h ∗ f
Associativité : (f ∗ g) ∗ h = f ∗ (g ∗ h) = f ∗ g ∗ h
Distributivité : (f + g) ∗ h = (f ∗ h) + (g ∗ h)
9/49
Masque de convolution

▶ Caractéristiques
▶ Ses caractéristiques (coefficients, taille) déterminent
l’effet du filtre
▶ Souvent carré et de taille impaire (3 × 3, 5 × 5, etc)
pour être centré sans ambiguïté sur le pixel d’analyse
▶ Souvent à valeurs symétriques centrées :
h(−1, −1) = h(+1, +1), h(0, −1) = h(0, +1), ...

▶ Normalisation
Soit S la somme des coefficients du masque
▶ Si l’on veut conserver la luminance de l’image (moyenne
des niveaux de gris), on doit avoir S = 1.
▶ Si les coefficients sont tous positifs, on doit donc les
diviser par S
10/49
Filtrage d’une image

▶ Exemple : soit un filtre défini par un masque 3 × 3 de


coefficients :

▶ La nouvelle valeur du pixel :

11/49
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 1 1 0 K
𝟏 𝟎 𝟏
0 0 1 1 1
* 𝟎 𝟏 𝟎 =
𝟏 𝟎 𝟏
0 0 1 1 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

R(x,y) = I(x-1,y-1)*K(0,0) + I(x, y-1)*K(1,0) + I(x+1, y-1)*K(2,0)


+ I(x-1,y)*K(0,1) + I(x,y)*K(1,1) + I(x+1,y)*K(2,1)
+ I(x-1,y+1)*K(0,2) + I(x,y+1)*K(1,2) + I(x+1,y+1)*K(2,2)

48
Convolution numérique R = I * K

I
1×𝟏 1×𝟎 1×𝟏 0 0
R
0×𝟎 1×𝟏 1×𝟎 1 0 K
𝟏 𝟎 𝟏 4
0×𝟏 0×𝟎 1×𝟏 1 1
* 𝟎 𝟏 𝟎 =
𝟏 𝟎 𝟏
0 0 1 1 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

49
Convolution numérique R = I * K

I
1 1× 𝟏 1× 𝟎 0 × 𝟏 0
R
0 1× 𝟎 1× 𝟏 1 × 𝟎 0 K
𝟏 𝟎 𝟏 4 3
0 0× 𝟏 1× 𝟎 1 × 𝟏 1
* 𝟎 𝟏 𝟎 =
𝟏 𝟎 𝟏
0 0 1 1 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

50
Convolution numérique R = I * K

I
1 1 1 ×𝟏
0 ×𝟎
0 ×𝟏
R
0 1 1 1 0 K
×𝟎 ×𝟏 ×𝟎
𝟏 𝟎 𝟏 4 3 4
0 0 1 ×𝟏 1 ×𝟎 1 ×𝟏 * 𝟎 𝟏 𝟎 =
𝟏 𝟎 𝟏
0 0 1 1 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

51
Convolution numérique R = I * K

I
1 1 1 0 0
R
0×𝟏 1×𝟎 1×𝟏 1 0 K
𝟏 𝟎 𝟏 4 3 4
0×𝟎 0×𝟏 1×𝟎 1 1
* 𝟎 𝟏 𝟎 = 2
𝟏 𝟎 𝟏
0×𝟏 0×𝟎 1×𝟏 1 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

52
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 ×𝟏 1 ×𝟎 1 ×𝟏 0 K
𝟏 𝟎 𝟏 4 3 4
0 0 ×𝟎 1 ×𝟏 1 ×𝟎 1
* 𝟎 𝟏 𝟎 = 2 4
𝟏 𝟎 𝟏
0 0 ×𝟏 1 ×𝟎 1 ×𝟏 0
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

53
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 1 1 0 K
×𝟏 ×𝟎 ×𝟏
𝟏 𝟎 𝟏 4 3 4
0 0 1 ×𝟎 1 ×𝟏 1 ×𝟎 * 𝟎 𝟏 𝟎 = 2 4 3
𝟏 𝟎 𝟏
0 0 1 ×𝟏 1 ×𝟎 0 ×𝟏
Noyau de
Résultat de
0 1 1 0 0 convolution
convolution
Image

54
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 1 1 0 K
𝟏 𝟎 𝟏 4 3 4
0×𝟏 0×𝟎 1×𝟏 1 1
* 𝟎 𝟏 𝟎 = 2 4 3
𝟏 𝟎 𝟏
0×𝟎 0×𝟏 1×𝟎 1 0 2
Noyau de
Résultat de
0×𝟏 1×𝟎 1×𝟏 0 0 convolution
convolution
Image

55
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 1 1 0 K
𝟏 𝟎 𝟏 4 3 4
0 0 ×𝟏 1 ×𝟎 1 ×𝟏 1
* 𝟎 𝟏 𝟎 = 2 4 3
𝟏 𝟎 𝟏
0 0 ×𝟎 1 ×𝟏 1 ×𝟎 0 2 3
Noyau de
Résultat de
0 1 ×𝟏 1 ×𝟎 0 ×𝟏 0 convolution
convolution
Image

56
Convolution numérique R = I * K

I
1 1 1 0 0
R
0 1 1 1 0 K
𝟏 𝟎 𝟏 4 3 4
0 0 1 ×𝟏 1 ×𝟎 1 ×𝟏 * 𝟎 𝟏 𝟎 = 2 4 3
𝟏 𝟎 𝟏
0 0 1 ×𝟎 1 ×𝟏 0 ×𝟎
2 3 4
Noyau de
Résultat de
0 1 1 0 0 convolution
×𝟏 ×𝟎 ×𝟏 convolution
Image

57
Effer de bord

▶ Dans l’opération de filtrage se pose évidemment le


problème des pixels qui sont à la bordure de l’image ( le
masque "dépasse à l’extérieur").
▶ On adopte alors, au choix, plusieurs stratégies, dont
certaines sont résumées ci-dessous :
▶ On peut tout d’abord "réduire" l’image.
▶ On peut également extrapoler par des zéros les pixels
extérieurs à l’image.
▶ On peut enfin extrapoler par un "miroir"

12/49
Effer de bord
Réduction de bruit

- zero padding: par des zéros.


- mirrorpadding: en réfléchissant en miroir l'image à travers sa bordure.
62
- replicate padding: la valeur de bordure d'image la plus proche.
Types de filtres

▶ Filtres passe-bas, ou de lissage


▶ Principe : moyenne pondérée des valeurs du voisinage
▶ Effet : lissage de l’image (variations atténuées)
▶ Avantage : atténuation du bruit
▶ Inconvénient : atténuation des détails, flou
▶ Caractérisation : coefficients tous positifs

▶ Filtres passe-haut, ou de contours


▶ Principe : dérivation de la fonction image
▶ Effet : accentuation des détails de l’image
▶ Avantage : mise en évidence des contours/détails
▶ Inconvénient : accentuation du bruit
▶ Caractérisation : coefficients de somme nulle
13/49
Filtres de lissage
▶ Principe
▶ Utilité : restauration de l’image (élimination du bruit)
par lissage.
▶ Inconvénient : suppression des hautes fréquences
(filtres passe-bas), d’où dégradation des contours et effet
de flou.
▶ Variétés
▶ Plusieurs types de filtres possédant chacun des
avantages propres.
▶ Plusieurs tailles possibles, selon l’étendue du voisinage à
considérer : 3 × 3, 5 × 5, ... l’effet de flou est d’autant
plus marqué que la taille est grande.
▶ Principaux filtres de lissage linéaires
▶ Caractérisés par un masque (réalisables par convolution).
14/49
▶ Exemples : filtres moyenneurs, gaussiens, ...
Lissage par moyennage

▶ Propriété : la valeur d’un pixel est relativement similaire


à celle de ses voisins
▶ Dans le cas où l’image contient un bruit et que la
propriété précédente est préservée, un moyennage local
peut atténuer ce bruit ⇒ Cette opération est appelée
lissage (smoothing)
▶ Pour effectuer un moyennage dans un bloc voisinage de

taille d × d, on obtient la sortie f :
d−1 d−1
′ 1 2
X 2
X
f (i, j) = 2 f (i + n, j + m)
d
n=− d−1
2
m=− d−1
2

15/49
Lissage par moyennage
Lissage par moyennage
Lissage par moyennage
Lissage par moyennage

▶ Configuration : dépend de l’importance à donner au


pixel d’analyse et à ses voisins :

▶ D’une manière générale, si on a un filtre de taille d, tous


les coefficients du filtre ont comme valeur wi = d12
▶ Remarque : |S|= 1, donc préservation de la luminance
▶ Inconvénient : forte atténuation des contours (limite la
performance des traitements ultérieurs)

16/49
Lissage par moyennage

17/49
Lissage par moyennage
Supposons que nous ayons une petite partie d'une image en niveaux de
gris avec un pixel central et ses pixels voisins comme suit

[30 ,20 ,10]


[60 ,50 ,40]
[90 ,80 ,70]
Lissage gaussien
▶ La fonction de Gauss appelée aussi loi de
Laplace-Gauss ou loi normale :
1 x2
G(x ) = √ exp(− 2 )
2πσ 2 2σ
▶ Sa courbe représentative est représentée à la figure
ci-dessous :

▶ ZOn démontre les résultats utiles suivants


Z 3σ:
∞ Z 2σ
G(x )dx = 1 G(x )dx = .95 G(x )dx = .99
−∞ −2σ −3σ
▶ ce qui montre que l’on peut se restreindre à l’intervalle
[−2σ, +2σ] ou [−3σ, +3σ]. 18/49
Lissage gaussien

▶ Le noyau gaussien centré et d’écart-type σ est défini


par :
1 i2 + j2
gσ (i, j) = √ exp(− )
2πσ 2 2σ 2
▶ Lissage par moyennage pondéré de l’image en fonction
de la distance du pixel voisin

19/49
Lissage gaussien

▶ Du continu au discret
Le noyau gaussien est défini par un ensemble de
coefficients qui sont des échantillons de la gaussienne 2D

20/49
Lissage gaussien
Lissage gaussien

▶ Ent+( :) est l’entier supérieur


▶ Si σ est petit le lissage n’a presque pas d’effet
▶ Plus σ est grand, plus on réduit le bruit, mais plus l’image
filtrée est floue ⇒ On doit trouver un compromis entre la
quantité de bruit à enlever et la qualité de l’image en sortie 21/49
disparaissent
Lissage gaussien

22/49
Le filtre médian

▶ Les filtres de moyennage ont tendance à rendre


l’image floue et donc à perdre de l’informations sur les
contours caractérisés par des fortes variations d’intensité.
▶ Pour diminuer cet effet, on ne moyenne plus sur le
voisinage mais on prend la valeur médiane sur ce voisinage

23/49
Le filtre médian

▶ Préserve l’information de contour et peut être appliqué


itérativement.
▶ Élimine le bruit impulsionnel.

24/49
Le filtre médian

25/49
Filtrage par le maximum

▶ Filtre supprimant le bruit "poivre et sel"

▶ Pour chaque pixel (i, j) :


▶ Calculer les niveaux de gris minimum fmin et maximum
fmax sur l’ensemble de ses voisins
▶ Si fmin ≤ f (x , y ) ≤ fmax , f (x , y ) reste inchangé
▶ Sinon f (x , y ) = fmax

26/49
Filtrage de Nagao

▶ Fenêtre 5 × 5 centrée sur chaque pixel, 9 domaines


définis
▶ On calcule pour chaque domaine Di la moyenne µi et la
variance σ 2
▶ Le pixel est remplacé par la moyenne du domaine de plus
faible variance

27/49
Filtrage de Nagao

28/49
Notion de fréquence spatiale

▶ Image : I : (x , y ) −→ I(x , y ) fonction 2d à valeur dans R


▶ Fréquence spatiale : "vitesse" de variation du signal
I(x , y ) (luminance) par rapport aux variables spatiale
(x , y )

29/49
Notion de fréquence spatiale

▶ ̸= fréquences spatiales (hautes/basses) dans ̸= régions

▶ ⇒ Il est possible de créer des filtres dédiés à l’atténuation


de fréquences spécifiques : Filtre passe-bande,
passe-bas, passe-haut, Gaussien, 30/49
Filtrage fréquentiel

▶ Filtres passe-bas
▶ Éliminer les fréquences hautes
▶ Supprimer les détails
▶ Filtres passe-haut
▶ Éliminer les fréquences basses
▶ Conserver la silhouette des objets
▶ Filtres passe-bande
▶ Ne garder que les fréquences comprises dans un certain
intervalle
▶ Filtres coupe-bande
▶ L’effet inverse des filtres passe-bande

31/49
Transformée de Fourier
▶ Définition
La transformée de Fourier permet la décomposition d’un
signal f en combinaison linéaire de sinusoïdes complexes,
dont les coefficients F [u, v ] dit coefficients de Fourier,
fournissent des informations sur les fréquences (u, v ) et
permettent des manipulations dans le domaine fréquentiel.
▶ Transformée de Fourier Directe

▶ Transformée de Fourier Inverse

▶ Autre forme de la transformé de Fourier : Module et


phase 32/49
F [u, v ] = |F [u, v ]|e ϕ[u,v ]
Exemple

▶ |F [u, v ]| Spectre de Fourier


▶ ϕ[u, v ] phase complexe du spectre
▶ En pratique, on visualise plutôt la fonction :
1 + log(F (u, v ))
33/49
Composantes fréquentielles en 2D

▶ Basses fréquences spatiales : f 2 + g 2 faible


▶ Hautes fréquences spatiales : f 2 + g 2 élévé

34/49
Composantes fréquentielles en 2D

▶ Important : la réponse fréquentielle de X (f , g) comporte


une information structurelle sur la direction des
fréquences spatiales
▶ Exemples sur des textures

35/49
Principe du filtrage fréquentiel

1. Calculer la transformée de Fourier F (u, v ) de l’image


f (x , y ) à filtrer
2. Calculer la transformée de Fourier H(u, v ) du filtre h(x , y )
3. Multiplier les deux spectres F (u, v )H(u, v )
4. Calculer la transformée de Fourier inverse du spectre
obtenu pour obtenir l’image filtrée g(x , y )

36/49
Exemple : Passe-bas

37/49
Exemple : Passe-haut

38/49
Exemple : Coupe-bande

39/49
Filtre passe-bas 2D

▶ Un filtre passe-bas idéal est un système linéaire ne


modifiant pas ou peu les basses fréquences de l’image
d’entrée
▶ La taille du voisinage caractérise la bande passante du
filtre
▶ Basses fréquences et fréquence fondamentale
conservées ⇒ L’information d’intensité est restituée lors
de la reconstruction de l’image (IDFT)
▶ Hautes fréquences éliminées : les changements
brusques d’intensité (bruit, frontières, ...) sont atténués
voire éliminés ⇒ étalement des frontières
40/49
Filtre passe-bas 2D idéal

Définition

▶ La fonction de transfert H(u, v ) du filtre passe-bas idéal


de fréquence de coupure D0 est donnée par :

 √
1 si u 2 + v 2 ≤ D0
H(u, v ) =  √
0 si u 2 + v 2 > D0

▶ Ce filtre supprime les composantes fréquentielles ayant



une fréquence radiale supérieure u 2 + v 2 à D0

41/49
Filtre passe-bas 2D idéal

Interprétations
▶ Les hautes fréquences sont supprimées
▶ Les basses fréquences, dont la fréquence fondamentale,
sont conservées
▶ L’image reconstruite présente du flou sur le contour

Figure : De gauche à droite, (a) : 3D, (b) : 2D, (c) : 42/49


section radial.
Filtre passe-bas 2D idéal : exemple

43/49
Filtre passe-bas 2D idéal

▶ Effet de la fréquence de coupure D0


▶ Évalué en fonction de l’énergie comprise dans le cercle
de rayon D0

Figure : Image et son spectre de Fourier, les cercles de


rayon 5, 15, 30, 80 et 230 associés respectivement aux
92 ; 94.6 ; 96.4 ; 98 et 99.5% de l’énergie de l’image. 44/49
Filtre passe-bas 2D idéal

45/49
Filtre passe-haut 2D

Définition

▶ Un filtre passe-haut est un système linéaire ne


modifiant pas ou peu les hautes fréquences de l’image
d’entrée
▶ Basses fréquences et fréquence fondamentale
éliminées ⇒ L’information d’intensité est enlevée lors de
la reconstruction de l’image (IDFT)
▶ Hautes fréquences préservées ⇒ Les changements
brusques d’intensité (bruit, frontières, ...) sont mis en
évidence

46/49
Filtre passe-haut 2D idéal

Définition

▶ La fonction de transfert H(u, v ) du filtre passe-haut idéal


de fréquence de coupure D0 est donnée par :

 √
1 si u 2 + v 2 ≥ D0
H(u, v ) =  √
0 si u 2 + v 2 < D0

▶ Ce filtre supprime les composantes fréquentielles ayant



une fréquence radiale inférieure u 2 + v 2 à D0

47/49
Filtre passe-haut 2D idéal

Interprétations
▶ Les hautes fréquences sont conservées
▶ Les basses fréquences, dont la fréquence fondamentale,
sont éliminées
▶ L’image reconstruite n’a plus ses couleurs, mais le
contour est net

48/49
Filtre passe-haut 2D idéal : exemple

49/49

Vous aimerez peut-être aussi