111
Filtrage linéaire Filtrage non linéaire Bases du traitement des images I Filtrage d’images J Nicolas Thome 11 octobre 2016 1 / 99 Bases du traitement des images

Filtrage non linéaire

Embed Size (px)

Citation preview

Page 1: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Bases du traitement des images

I Filtrage d’images J

Nicolas Thome

11 octobre 2016

1 / 99Bases du traitement des images

Page 2: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plan

1 Filtrage linéaireFiltrage spatial

2 Filtrage non linéaire

2 / 99Bases du traitement des images

Page 3: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas continu, en 1D

I Opérateur T : x(t)→ T [x(t)] = y(t), propriété LIT :

1 Linéarité : T[∫∞−∞ cwx(t)dw

]=∫cwT [x(t)] dw =

∫cwy(t)dw

2 Invariance translation : T [x(t − τ)] = y(t − τ)

I h(t) = T [δ(t)] : réponse impulsionnelle du système LIT

I x(t) =∫∞−∞ x(τ)δ(t − τ)dτ , conséquences LIT :

y(t) = T [x(t)] =

∫ ∞−∞

x(τ)h(t − τ)dτ = x(t) ? h(t)

3 / 99Bases du traitement des images

Page 4: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas continu, en 1D

y(t) = T [x(t)] =

∫ ∞−∞

x(τ)h(t − τ)dτ = x ? h(t) (1)

I Système LIT : entièrement caratérisé par sa réponse impulsionnelle h

I Sortie y(t) pour entrée quelconque x(t) : convolution x(t) et h(t)

x(t)h(t)

y(t) = h ⋆ x(t)

(convolution)

4 / 99Bases du traitement des images

Page 5: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas continu, en 1D : y(t) = x ? h(t)

Y (f ) = TF [y(t)] = TF [x ? h(t)] = X (f ) · H(f ) (2)

I h(t) : réponse impulsionnelle du filtre

I H(f ) = TF [h(t)] : fonction de transfert du filtre

y(t) = h ⋆ x(t)

TF (Transformee de Fourier)

X(v)H(v)

Y (v) = H(v)X(v)

x(t)h(t)

5 / 99Bases du traitement des images

Page 6: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes LIT : bilan

y(t) = h ⋆ x(t)

TF (Transformee de Fourier)

X(v)H(v)

Y (v) = H(v)X(v)

x(t)h(t)

Temporel Fréquentiely(t) = x ? h(t) y(t) = TF−1 [X (f ) · H(f )]

I Opérations duales

I Avantages/inconvénients des espaces de traitement (complexitéalgorithmique) ?

6 / 99Bases du traitement des images

Page 7: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 1D

I Opérateur T : x(n)→ T [x(n)] = y(n), propriété LIT :

1 Linéarité : T[∞∑

n=−∞cnx(n)

]=

∞∑n=−∞

cnT [x(n)] =∑

cny(n)

2 Invariance translation : T [x(n − k)] = y(n − k)

I h(n) = T [δ(n)] : réponse impulsionnelle du système LIT

I x(n) =∞∑

k=−∞x(k)δ(n − k), Conséquences LIT :

y(n) = T [x(n)] =∞∑

k=−∞

x(k)h(n − k) = x ? h(n)

7 / 99Bases du traitement des images

Page 8: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 1D

y(n) = T [x(n)] =∞∑

n=−∞x(k)h(n − k) = x(n) ? h(n) (3)

I Système LIT : entièrement caratérisé par sa réponse impulsionnelle h

I Sortie y(n) pour entrée quelconque x(n) : convolution x(n) et h(n)

Filtre y(n) = h ⋆ x(n)x(n)

8 / 99Bases du traitement des images

Page 9: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 1D : y(n) = x ? h(n)

I X (z) Transformée de Fourier Discrète (TFD) de x(t)

Y (z) = TFD [y(n)] = TFD [x ? h(n)] = X (z) · H(z) (4)

I H(z) = TFD [h(n)] : fonction de transfert du filtre

TFD

x(n)h(n)

y(n) = h � x(n)

(convolution)

X(v)H(v)

Y (v) = H(v)X(v)

9 / 99Bases du traitement des images

Page 10: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes LIT : bilan

TFD

x(n)h(n)

y(n) = h � x(n)

(convolution)

X(v)H(v)

Y (v) = H(v)X(v)

Temporel Fréquentiely(n) = x ? h(n) y(n) = TFD−1 [X (z) · H(z)]

I Opérations duales

I Avantages/inconvénients des espaces de traitement ? Complexitéalgorithmique ?

10 / 99Bases du traitement des images

Page 11: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 2D

I Opérateur T : x(n,m)→ T [x(n,m)] = y(n,m), propriété LIT :

1 Linéarité :

T

[∞∑

n=−∞cnx(n,m)

]=

∞∑n=−∞

cnT [x(n,m)] =∑

cny(n,m)

2 Invariance translation : T [x(n − k,m − l)] = y(n − k,m − l)

I h(n,m) = T [δ(n,m)] : réponse impulsionnelle du système LIT

I x(n,m) =∞∑

k=−∞

∞∑l=−∞

x(k , l)δ(n − k ,m − l), Conséquences LIT :

T [x(n,m)] =∞∑

k=−∞

∞∑l=−∞

x(k , l)h(n − k ,m − l) = x ? h(n,m)

11 / 99Bases du traitement des images

Page 12: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 2D : y(n,m) = T [x(n,m)]

y(n,m) =∞∑

k=−∞

∞∑l=−∞

x(k , l)h(n − k ,m − l)

= x ? h(n,m)

(5)

I Système LIT : entièrement caratérisé par sa réponse impulsionnelleh(n,m)

I Sortie y(n,m) pour entrée quelconque x(n,m) : convolution x(n,m)et h(n,m)

Filtrex(n,m) y(n,m) = h ⋆ x(n,m)

12 / 99Bases du traitement des images

Page 13: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes Linéaires Invariants par Translation (LIT)

I Cas discret, en 2D : y(n,m) = x ? h(n,m)

I X (f , g) Transformée de Fourier Discrète (TFD) de x(n,m)

Y (f , g) = TFD [y(n,m)] = TFD [x ? h(n,m)]

= X (f , g) · H(f , g)(6)

I H(f , g) = TFD [h(n,m)] : fonction de transfert du filtre

13 / 99Bases du traitement des images

Page 14: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire

Systèmes LIT : bilan

X(f, g)H(f, g)

Y (f, g) = H(f, g)X(f, g)

TFD

h(t)y(n,m) = x ⋆ h(n,m)x(n,m)

Temporel Fréquentiely(n,m) = x ? h(n,m) y(n,m) = TFD−1 [X (f , g) · H(f , g)]

I Opérations duales

I Avantages/inconvénients des espaces de traitement ? Complexitéalgorithmique ?

14 / 99Bases du traitement des images

Page 15: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plan

1 Filtrage linéaireFiltrage spatial

2 Filtrage non linéaire

15 / 99Bases du traitement des images

Page 16: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial

Pourquoi filtrer une image ?

I Pour réduire le bruit dans l’image (sujet de ce cours)

I Pour détecter les contours d’une image (sujet du prochain cours)

I Convolution entre une image f et un filtre h, appelé aussi masquede convolution

I Opération de voisinage qui effectue une combinaison linéaire (ounon) de pixels de l’image f , produisant une nouvelle image f ′

I h est un opérateur sur f défini en chaque pixel (i , j) et sur sonvoisinage

16 / 99Bases du traitement des images

Page 17: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Réduction du bruitDéfinition du bruit

I Phénomène parasite aléatoire (suivant une distribution deprobabilité connue ou non) dont les origines sont diverses (capteur,acquisition, lumière, ...)

I Dans le cas du filtrage linéaire, on considère que le bruit est additif

I Pour le cas du bruit additif, si fb est l’image alors on peut l’écrire dela forme :

fb(i , j) = f (i , j) + b(i , j)

I Exemples de bruits additifs : bruits gaussiens et impulsionnels

• Bruit gaussien : I (x , y) = I (x , y) +N (0, σ)• Bruit impulsionnel ("poivre et sel") d’ordre n : ajouter n pixels

blancs et n pixels noirs aléatoirement dans l’imagecaractérisé par un % de pixels remplacés.

I Autres types de bruits : flou (convolutif), grain (multiplicatif)

17 / 99Bases du traitement des images

Page 18: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Réduction du bruit

Exemples d’images bruitées

I 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

18 / 99Bases du traitement des images

Page 19: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial

Filtrage spatial linéaire : convolution

I Filtrage linéaire spatial : convoluer l’image avec la réponseimpulsionnelle du filtre

I Dans le domaine spatial

T [x(n,m)] =+∞∑

k=−∞

+∞∑l=−∞

x(k , l)h(n − k ,m − l) = x ? h(n,m)

Filtrex(n,m) y(n,m) = h ⋆ x(n,m)

I Comment s’interprète le calcul de la convolution ?

I Comment fait-on le calcul de la convolution pour des images(signaux discrets 2D) ?

19 / 99Bases du traitement des images

Page 20: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial

Produit de convolution : Illustration en 1D continu

1 Retournement du signal :g(t)→ g(−t)

2 Translation du signal dex : → g(x − t)

3 Produit entre Translationdu signal de t :f (t)g(x − t)

4 Calcul de l’intégrale def (t)g(x − t)

20 / 99Bases du traitement des images

Page 21: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial

Produit de convolution 2D discret

I Le produit de convolution d’un signal 2D f (i , j) (une image) avecun filtre h(i , j) est donné par :

f ′(i , j) = (f ? h)(i , j) =+∞∑

n=−∞

+∞∑m=−∞

f (i − n, j −m)h(n,m)

I On disctingue 2 stituations :

1 Filtres de Réponse Impulsionnelle h(n,m) Finie (RIF)2 Filtres de Réponse Impulsionnelle h(n,m) Infinie (RII)

21 / 99Bases du traitement des images

Page 22: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage par convolution

Filtres de Réponse Impulsionnelle Finie (RIF) v.s. Infinie (RII)

1 Filtres de Réponse Impulsionnelle h(n,m) Infinie (RII) : h(n,m) nes’annule pas

2 Filtres de Réponse Impulsionnelle h(n,m) Finie (RIF) : h(n,m) estnul en dehors d’un intervalle en n et m

• On parle de masque de convolution• Par exemple, si h(n,m) est un masque carré de taille d impaire,

centré en (0,0), h(n,m) 6= 0 pour |n| ≤ d−12 et |m| ≤ d−1

2 :

f ′(i , j) = (f ? h)(i , j) =

d−12∑

n=− d−12

d−12∑

m=− d−12

f (i − n,m − j)h(n,m)

22 / 99Bases du traitement des images

Page 23: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage par convolution

Filtres de Réponse Impulsionnelle Finie (RIF)

I Exemple : si h(n,m) est un masque carré de taille d = 3 impaire :

f ′(i , j) = (f ? h)(i , j) =1∑

n=−1

1∑m=−1

f (i − n, j −m)h(n,m)

f ′(i, j) = h(1, 1)f (i − 1, j − 1) + h(1, 0)f (i − 1, j) + h(1,−1)f (i − 1, j + 1)

+ h(0, 1)f (i, j − 1) + h(0, 0)f (i, j) + h(0,−1)f (i, j + 1)

+ h(−1, 1)f (i + 1, j − 1) + h(−1, 0)f (i + 1, j) + h(−1,−1)f (i + 1, j + 1)

I Si on pose g(n,m) = h(−n,−m) : somme pondérée image avec g

f ′(i, j) = g(−1,−1)f (i − 1, j − 1) + g(−1, 0)f (i − 1, j) + g(−1, 1)f (i − 1, j + 1)

+ g(0,−1)f (i, j − 1) + g(0, 0)f (i, j) + g(0, 1)f (i, j + 1)

+ g(1,−1)f (i + 1, j − 1) + g(1, 0)f (i + 1, j) + g(1, 1)f (i + 1, j + 1)

23 / 99Bases du traitement des images

Page 24: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage par convolution

Principe de calcul de la convolution pour un filtre RIFSoit un filtre RIF de réponse impulsionnelle h(n,m)Au pixel p = f (i , j) :

1 Faire une symétrie centrale du noyau par rapport à son centre :h(n,m)⇒ h(−n,−m) = g(n,m)

2 Centrer le filtre sur p en le superposant à l’image

3 Effectuer la somme pondérée entre les pixels de l’image et lescoefficients du filtre g(n,m)

4 Le pixel p dans l’image but (filtrée) aura comme valeur cettesomme pondérée

24 / 99Bases du traitement des images

Page 25: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Exemple de convolution

Cas avec un filtre de taille d = 3

h =

w9 w8 w7w6 w5 w4w3 w2 w1

g =

w1 w2 w3w4 w5 w6w7 w8 w9

I La convolution au pixel (i , j) de f par le noyaux h est donnée par :

f ′(i , j) = w1f (i − 1, j − 1) + w2f (i − 1, j) + w3f (i − 1, j + 1)

+ w4f (i , j − 1) + w5f (i , j) + w6f (i , j + 1)

+ w7f (i + 1, j − 1) + w8f (i + 1, j) + w9f (i + 1, j + 1)

I Les filtres que nous étudions dans ce chapitre (débruiteurs) doiventconserver la moyenne de l’image ; les cœfficients du filtre doiventdonc vérifier

∑i wi = 1.

25 / 99Bases du traitement des images

Page 26: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Principe de la fenêtre glissante

26 / 99Bases du traitement des images

Page 27: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Convolution 2D

Types de convolution

I Comment faire quand le masque recouvre des zones en dehors del’image ?

I Convolution linéaire : on considère que l’image est entourée de noir,donc de valeurs nulles : zero-padding

I Convolution circulante : on considère que l’image est entourée d’ellemême (i.e. support infini de l’image)

I Convolution d’une image avec répétition du bord : on considère quel’image est entourée des mêmes valeurs que sur son bord

I Convolution miroir

27 / 99Bases du traitement des images

Page 28: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : exemple de filtres

Lissage par moyennage

I Propriété : la valeur d’un pixel est relativement similaire à celle deses voisins

I 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)

I Pour effectuer un moyennage dans un bloc voisinage de taille d × d ,on obtient la sortie f ′ :

f ′(i , j) =1d2

d−12∑

n=− d−12

d−12∑

m=− d−12

f (i + n, j + m)

28 / 99Bases du traitement des images

Page 29: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage par moyennage

Exemple

I Le filtre de taille d = 3 :

h =19

1 1 11 1 11 1 1

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

coefficients du filtre ont comme valeur wi = 1d2

I Plus d est grand, plus le lissage sera important, et plus l’imagefiltrée perd les détails de l’image originale

29 / 99Bases du traitement des images

Page 30: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage par moyennage

30 / 99Bases du traitement des images

Page 31: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage par moyennage

31 / 99Bases du traitement des images

Page 32: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage par moyennage

Filtrage spatial v.s. fréquentiel

Temporel Fréquentiely(n,m) = x ? h(n,m) y(n,m) = TFD−1 [X (f , g) · H(f , g)]

I Quelle est la fonction de transfert du filtre moyenneur ? Type defiltrage fréquentiel ?

I Filtre passe-bas, passe-bas idéal ? (voir section filtrage fréquentiel)

I En TME

32 / 99Bases du traitement des images

Page 33: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : exemple de filtres

Lissage gaussien

I Définition : noyau gaussien centré et d’écart-type σ :

gσ(i , j) =1

2πσ2 e− i2+j2

2σ2

I Lissage par moyennage pondéré de l’image en fonction de ladistance du pixel voisin

33 / 99Bases du traitement des images

Page 34: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Du continu au discretI Le noyau gaussien est défini par un ensemble de coefficients qui sont

des échantillons de la gaussienne 2D

34 / 99Bases du traitement des images

Page 35: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Calcul des coefficients du filtreI La largeur du filtre est donnée par son écart-type σ :

• Largeur du filtre de part et d’autre du point central : Ent+(3σ)(Ent+(.) est l’entier supérieur)

• Largeur totale du filtre : 2Ent+(3σ) + 1

I Si σ est plus petit qu’un pixel le lissage n’a presque pas d’effet

I Plus σ est grand, plus on réduit le bruit, mais plus l’image filtrée estfloue

I Si σ est choisi trop grand, tous les détails de l’image sont perdus

↪→ On doit trouver un compromis entre la quantité de bruit àenlever et la qualité de l’image en sortie

35 / 99Bases du traitement des images

Page 36: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Exemple pour σ = 0.625

I Largeur du filtre de part et d’autre du point central : Ent+(3σ) = 2

I Largeur totale du filtre : 2Ent+(3σ) + 1 = 5

I On obtient le filtre suivant :

h = 0.4× 10−2 ×

0.03 0.16 5.98 0.16 0.030.16 7.7 27.8 7.7 0.165.98 27.8 100 27.8 5.980.16 7.7 27.8 7.7 0.160.03 0.16 5.98 0.16 0.03

36 / 99Bases du traitement des images

Page 37: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

image originale

37 / 99Bases du traitement des images

Page 38: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 2

37 / 99Bases du traitement des images

Page 39: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 4

37 / 99Bases du traitement des images

Page 40: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 8

37 / 99Bases du traitement des images

Page 41: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 16

37 / 99Bases du traitement des images

Page 42: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 32

37 / 99Bases du traitement des images

Page 43: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien : des petites aux grandeséchelles

σ = 64

37 / 99Bases du traitement des images

Page 44: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Filtrage spatial v.s. fréquentiel

Temporel Fréquentiely(n,m) = x ? h(n,m) y(n,m) = TFD−1 [X (f , g) · H(f , g)]

I Quelle est la fonction de transfert du filtre gaussien ?

I Rappel : la transformée de Fourier d’une gaussiene est unegaussienne

TF[e−b

2t2]

=

√π

|b|e−

π2 f 2b2

TF[e−b

2(t2+u2)]

b2 e−π2(f 2+g2)

b2

I Filtre passe-bas, non idéal (voir partie filtrage fréquentiel)

38 / 99Bases du traitement des images

Page 45: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Filtrage spatial v.s. fréquentiel

TF[e−b2(t2+u2)

]=

π

b2 e−π2(f 2+g2)

b2

I En spatial σs = 1b , en fréquentiel σf = b

π ⇒ σf = 1σsπ

h(n,m) H(f , g)

σs = 0.7, taille 7× 7 σf = 0.45

39 / 99Bases du traitement des images

Page 46: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Filtrage spatial v.s. fréquentiel

TF[e−b2(t2+u2)

]=

π

b2 e−π2(f 2+g2)

b2

I En spatial σs = 1b , en fréquentiel σf = b

π ⇒ σf = 1σsπ

h(n,m) H(f , g)

σs = 1.0, taille 7× 7 σf = 0.32

40 / 99Bases du traitement des images

Page 47: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Filtrage spatial v.s. fréquentiel

TF[e−b2(t2+u2)

]=

π

b2 e−π2(f 2+g2)

b2

I En spatial σs = 1b , en fréquentiel σf = b

π ⇒ σf = 1σsπ

h(n,m) H(f , g)

σs = 2.0, taille 13× 13 σf = 0.16

41 / 99Bases du traitement des images

Page 48: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Lissage gaussien

Filtrage spatial v.s. fréquentiel

TF[e−b2(t2+u2)

]=

π

b2 e−π2(f 2+g2)

b2

I En spatial σs = 1b , en fréquentiel σf = b

π ⇒ σf = 1σsπ

h(n,m) H(f , g)

σs = 3.0, taille 19× 19 σf = 0.10

42 / 99Bases du traitement des images

Page 49: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Autres filtres

Filtre binomialI Coefficients obtenus par le binôme de Newton

h =1256

1 4 6 4 14 16 24 16 46 24 36 24 64 16 24 16 41 4 6 4 1

43 / 99Bases du traitement des images

Page 50: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : autres filtres

filtre binomial

h =1

256

1 4 6 4 14 16 24 16 46 24 36 24 64 16 24 16 41 4 6 4 1

I Filtre passe-bas, non idéal (voir partie filtrage fréquentiel)

44 / 99Bases du traitement des images

Page 51: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : autres filtres

filtre pyramidal

hp =1

81

1 2 3 2 12 4 6 4 23 6 9 6 32 4 6 4 21 2 3 2 1

I Filtre passe-bas, non idéal (voir partie filtrage fréquentiel)

45 / 99Bases du traitement des images

Page 52: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : autres filtres

filtre conique

hc =1

25

0 0 1 0 00 2 2 2 01 2 5 2 10 2 2 2 00 0 1 0 0

I Filtre passe-bas, non idéal (voir partie filtrage fréquentiel)

46 / 99Bases du traitement des images

Page 53: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : autres filtres

filtre réhausseur de contraste

hr1 =

1 −3 1−3 9 −31 −3 1

I Filtre passe-haut, non idéal (voir partie filtrage fréquentiel)

47 / 99Bases du traitement des images

Page 54: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage spatial linéaire : autres filtres

filtre réhausseur de contraste : seconde version

hr2 =

0 −1 0−1 5 −10 −1 0

I Filtre passe-haut, non idéal (voir partie filtrage fréquentiel)

48 / 99Bases du traitement des images

Page 55: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre de GaborFiltres de Gabor pour la classification [Serre2007]

I But : modéliser le traitement du cortex visuel (V1)

• Couche S1 : convolution image par des filtres de Gabor

49 / 99Bases du traitement des images

Page 56: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre de Gabor

Définition

h(x , y) = exp(−x2

0 + γ y20

2σ2

)cos(2πλx0

)(7)

x0 = x cos (θ) + y sin (θ) et y0 = −x sin (θ) + y cos (θ)

I Paramètres fixés : γ = 0.3, λ et σ à partir de données biologiques

I Paramètres variables : échelle s et orientation θ

I Filtres passe-bande localisés dans l’espace et en fréquence

I Donne des réponses à différentes échelles et orientations

50 / 99Bases du traitement des images

Page 57: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtres de Gabor

Variations de l’orientationEn faisant varier θ :

Réponse impulsionnelle h(n, n)

Fonction de Transfert H(f , g)

I Capturent des fréquences spatiales à différentes orientations

I Filtres passe-bande localisés

51 / 99Bases du traitement des images

Page 58: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtres de Gabor

Variation de l’échelleEn faisant varier s :

Réponse impulsionnelle h(n, n)

Fonction de Transfert H(f , g)

I Capturent des fréquences spatiales à différentes échelles

I Filtres passe-bande localisés

52 / 99Bases du traitement des images

Page 59: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre séparable

Définition

I Rappelons les propriétés suivantes (vraies en continu et en discret) :

• Commutativité : (f ? g)(n) = (g ? f )(n)• Distributivité : (f ? (g + h))(n) = (f ? g)(n) + (f ? h)(n)• Associativité : ((f ? g) ? h))(n) = (f ? (g ? h))(n)• L’opérateur ? est bilinéaire.

I Lorsque h(i , j) = hx(i)× hy (i) (filtre de taille N ×M) laconvolution 2D correspond à une composition de convolutions 1D :

(f ? h)(i , j) =

N/2∑n=−N/2

M/2∑m=−M/2

f (i − n, j −m)h(n,m)

=∑m

(∑n

f (i − n, j −m)hx(n)

)hy (m)

= (f ? hx ? hy )(i , j)

53 / 99Bases du traitement des images

Page 60: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre séparable (suite)

I Les filtres moyenneur, gaussien, binomiale, ... sont séparables.

I Moyenneur 3× 3 : hx = 13

(1 1 1

), hy = 1

3

111

I Gaussien : exp(− i2+j2

2σ2 ) = exp(− i2

2σ2 ) exp(− j2

2σ2 )

I Voir TD 4

• Permet de diminuer la complexité du filrage• Permet d’implémenter les fitres de manière récursive

54 / 99Bases du traitement des images

Page 61: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage des images en couleurs

Filtrage linéaire

I Le filtrage spatial d’une image f en couleur par un filtre h s’effectuede la manière suivante :

f ′(i , j) = (f ? h)(i , j) =N∑

n=1

M∑m=1

f (i , j)h(n − i ,m − j)

I Pour le cas d’une image couleur, on a deux solutions :

1 h est une matrice diagonale : le filtrage se fait plan par plan ;2 h n’est pas une matrice diagonale : il y a des termes croisés

(dépendances entre composantes).

I Attention au choix des espaces de représentation des couleurs ! (voircours intro)

55 / 99Bases du traitement des images

Page 62: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage linéaire des images en couleurs

I Approche marginale : traiter chaque composante puis fusion⇒ hypothèse d’indépendance des composantes, souvent violée

I Approche vectorielle : la couleur est vue comme un vecteur 3D

56 / 99Bases du traitement des images

Page 63: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage des images en couleurs : illustration

Filtre moyenneur

I Trois moyenneurs scalaires

I Possibilité d’utiliser des masques différents sur chaque composante.

I Risque d’engendrer des phénomènes de fausses couleurs.

57 / 99Bases du traitement des images

Page 64: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage fréquentiel

DéfinitionsI On suppose que le signal dont on dispose a été discrétisé

I Garder/supprimer des fréquences du signal à l’aide d’un filtre

I Deux manières de procéder :

• dans le domaine spatial : produit de convolution entre le signal et lefiltre ;

• dans le domaine fréquentiel : produit entre les spectres du signal etdu filtre.

I Trois familles :

• filtrage passe-bas ;• filtrage passe-haut ;• filtrage passe-bande (et aussi coupe-bande).

I Filtre idéal : coefficients égaux à 0 ou 1.

58 / 99Bases du traitement des images

Page 65: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage fréquentiel

Principe général du filtrage fréquentiel

1 Calculer la tranformée de Fourier X (f , g) du signal x(n,m) à filtrer

2 Calculer la transformée de Fourier Discrète H(f , g) du filtre h(n,m)

3 Multiplier les spectres Xfiltré(f , g) = X (f , g) · H(f , g)

4 Calculer la transformée de Fourier inverse du spectre obtenu pourobtenir le signal filtré xfiltré(n,m)

59 / 99Bases du traitement des images

Page 66: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage fréquentiel

Principe du filtrage fréquentiel 2D

60 / 99Bases du traitement des images

Page 67: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage passe-bas : illustration en 1D

61 / 99Bases du traitement des images

Page 68: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Caractéristiques fréquentielles du bruit

Le bruit est une haute fréquence

62 / 99Bases du traitement des images

Page 69: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D : bande passante

DéfinitionI 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

I La taille du voisinage caractérise la bande passante du filtre

I Basses fréquences et fréquence fondamentale conservées↪→ L’information d’intensité est restituée lors de la reconstruction del’image (IDFT)

I Hautes fréquences éliminées : les changements brusques d’intensité(bruit, frontières, ...) sont atténués voire éliminés↪→ étalement des frontières

63 / 99Bases du traitement des images

Page 70: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D idéal

Définition

I La fonction de transfert H(u, v) du filtre passe-bas idéal defréquence de coupure D0 est donnée par :

H(u, v) =

{1 si

√u2 + v2 ≤ D0

0 si√u2 + v2 > D0

I Ce filtre supprime les composantes fréquentielles ayant unefréquence radiale

√u2 + v2 supérieure à D0

64 / 99Bases du traitement des images

Page 71: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D idéal

65 / 99Bases du traitement des images

Page 72: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D idéal

Interprétations

I Les hautes fréquences sont supprimées

I Les basses fréquences, dont la fréquence fondamentale, sontconservées

I L’image reconstruite présente du flou sur le contour

66 / 99Bases du traitement des images

Page 73: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D idéal

Interprétations

H(f , g) h(n,m) h(n,m)

I Filtre passe-bas 2D idéal : convolution par une fonction de besseld’ordre 1

I Phénomène d’oscillations (rebonds), visuellement potentiellementgênants

• H(f , g) non dérivable à la fréquence de coupure (cf phénomèneGibbs)

• ∼ fonction porte Rect(f , g) de TF inverse sinus cardinal

67 / 99Bases du traitement des images

Page 74: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D : un exemple réel

68 / 99Bases du traitement des images

Page 75: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D de Butterworth d’ordre n

DéfinitionI Le filtre passe-bas de Butterworth d’ordre n est défini par :

H(u, v) =1

1 +(√

u2+v2

D0

)2n

69 / 99Bases du traitement des images

Page 76: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bas 2D de Butterworth d’ordre n

Caractéristiques

I Les composantes fréquentielles sont d’autant plus atténuées que lecouple (u, v) est loin de l’origine

I Plus n est grand, plus l’atténuation des hautes fréquences estimportante

I Moins de flou (contours moins lissés) qu’avec un filtre passe-basidéal

70 / 99Bases du traitement des images

Page 77: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage anti-aliasing

Aliasing : interprétation fréquentielle (rappel)

I Image bien échantillonnée, i.e. fe ≥ 2fmax (Shannon)TF continue TF échantillonée TFD=TF continue

TFD=TF continue pas d’aliasing71 / 99

Bases du traitement des images

Page 78: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Aliasing : interprétation fréquentielle (rappel)

Image bien échantillonnée, limite fe = 2fmax (Shannon)

TF continue TF échantillonée TFD=TF continue

TFD=TF continue pas d’aliasing

72 / 99Bases du traitement des images

Page 79: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Aliasing : interprétation fréquentielle

Image mal échantillonnée, fe < 2fmax

TF continue TF échantillonée TFD 6= TF continue

TFD 6= TF continue Effets d’aliasing

73 / 99Bases du traitement des images

Page 80: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage anti-aliasing numérique

Principe

I Contexte : une image numérique de taille NxM échantillonée enrespectant Shannon

I Sous-échantillonage : va nécessairement introduire des effetsd’aliasing

I Filtrage anti-aliasing : effectuer un filtrage passe-bas préalablementau sous-échantilonnage

En TME !

74 / 99Bases du traitement des images

Page 81: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage passe-haut 1D

Principe

I Garder les hautes fréquences du spectre de Fourier du signal

I Le signal est reconstruit par DFT inverse sans ses basses fréquences,donc sans sa fréquence fondamentale

75 / 99Bases du traitement des images

Page 82: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage passe-haut 1D : un exemple

76 / 99Bases du traitement des images

Page 83: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D

DéfinitionI 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

I Basses fréquences et fréquence fondamentale éliminées↪→ L’information d’intensité est enlevée lors de la reconstruction del’image (IDFT)

I Hautes fréquences préservées↪→ Les changements brusques d’intensité (bruit, frontières, ...) sontmis en évidence

77 / 99Bases du traitement des images

Page 84: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D idéal

Définition

I La fonction de transfert H(u, v) du filtre passe-haut de fréquence decoupour D0 idéal est donnée par :

H(u, v) =

{1 si

√u2 + v2 ≥ D0

0 si√u2 + v2 < D0

I Ce filtre supprime les composantes fréquentielles ayant unefréquence radiale

√u2 + v2 inférieure à D0

78 / 99Bases du traitement des images

Page 85: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D idéal

79 / 99Bases du traitement des images

Page 86: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D idéal

Interprétations

I Les hautes fréquences sont conservées

I Les basses fréquences, dont la fréquence fondamentale, sontéliminées

I L’image reconstruite n’a plus ses couleurs, mais le contour est net

80 / 99Bases du traitement des images

Page 87: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D de Butterworth d’ordren

DéfinitionI Le filtre passe-haut de Butterworth d’ordre n est défini par :

H(u, v) =1

1 +(

D0√u2+v2

)2n

81 / 99Bases du traitement des images

Page 88: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D de Butterworth d’ordren

Caractéristiques

I Les composantes fréquentielles sont d’autant plus atténuées que lecouple (u, v) est proche de l’origine

I n fixe la pente de transition entre les hautes et les basses fréquences

I Le filtrage passe-haut a un effet dérivateur

82 / 99Bases du traitement des images

Page 89: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-haut 2D : un exemple réel

83 / 99Bases du traitement des images

Page 90: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage passe-bande 1D

Principe

I Garder une bande de fréquences du spectre de Fourier du signal

I Le signal est reconstruit par DFT inverse sans cette bande defréquences

84 / 99Bases du traitement des images

Page 91: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage passe-bande 1D : un exemple

85 / 99Bases du traitement des images

Page 92: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bande 2D

DéfinitionI Un filtre passe-bande est complémentaire d’un filtre passe-bas et

d’un filtre passe-haut

I Un filtre passe-bande est un système linéaire qui préserve une plagede fréquences

I L’image reconstruite est une combinaison d’un nombre réduitd’images de base (sinusoïdes)

86 / 99Bases du traitement des images

Page 93: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre passe-bande 2D idéal

87 / 99Bases du traitement des images

Page 94: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plan

1 Filtrage linéaireFiltrage spatial

2 Filtrage non linéaire

88 / 99Bases du traitement des images

Page 95: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian

Définition

I Soit une séquence discrète a1, a2, . . . , aN (N impair). ai est la valeurmédiane de la séquence si :

• Il existe N−12 éléments de valeur inférieure

• Il existe N−12 éléments de valeur supérieure

I Très adapté au bruit type "poivre et sel" (faux "blanc" et "noir"dans l’image)

I Préserve les contours

I Réduit le bruit additif uniforme ou gaussien (lissage de l’image)

I Si le bruit est supérieur à la moitié de la taille du filtre, alors le filtreest inefficace

89 / 99Bases du traitement des images

Page 96: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian

DéfinitionI Déplacer une fenêtre de taille impaire sur le support image

I Remplacer le pixel central (sur lequel est positionnée la fenêtre) parla valeur médiane des pixels inclus dans la fenêtre

90 / 99Bases du traitement des images

Page 97: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian

91 / 99Bases du traitement des images

Page 98: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian contre filtre gaussien

92 / 99Bases du traitement des images

Page 99: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian contre filtre gaussien

92 / 99Bases du traitement des images

Page 100: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Le filtre médian contre filtre gaussien

92 / 99Bases du traitement des images

Page 101: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plus loin avec le médian

Image originale

93 / 99Bases du traitement des images

Page 102: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plus loin avec le médian

Median 15× 15

93 / 99Bases du traitement des images

Page 103: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plus loin avec le médian

Median 31× 31

93 / 99Bases du traitement des images

Page 104: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plus loin avec le médian

Median 3× 3 itéré 15 fois

93 / 99Bases du traitement des images

Page 105: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Plus loin avec le médian

Median 7× 7 itéré 5 fois

93 / 99Bases du traitement des images

Page 106: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtre Médian

Question/Exercice

I Pourquoi le filtre médian est-il non linéaire ?

94 / 99Bases du traitement des images

Page 107: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Autres filtres non linéaire : filtres de rang

Définition (filtre maximum)

I Filtre supprimant le bruit “poivre”

I Pour chaque pixel (i , j) :

• fmax(x , y) = max(i,j)∈voisins(x,y) f (i , j)

Définition (filtre minimum)

I Filtre supprimant le bruit “sel”

I Pour chaque pixel (i , j) :

• fmin(x , y) = min(i,j)∈voisins(x,y) f (i , j)

I Médian, min et max sont appelés filtres de rang.

95 / 99Bases du traitement des images

Page 108: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Filtrage de Nagao

DéfinitionI Fenêtre 5× 5 centrée sur chaque pixel, 9 domaines définis

I On calcule pour chaque domaine Di la moyenne µi et la variance σ2i

I Le pixel est remplacé par la moyenne du domaine de plus faiblevariance

96 / 99Bases du traitement des images

Page 109: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Gaussien orienté

ProblèmeI Choisir une fonction gaussienne 2D ayant des écart-types de valeurs

différentes en fonction de la direction.

I La gaussienne exp(− x2+y2

2σ2 ) a un axe de symétrie en l’origine

I Généralisation, considérer le noyau

gΣ(x , y) =1

det(Σ)πexp

(−(x y

)Σ−1

(xy

))

I A la manière du détecteur de Harris, on peut choisir Σ de façon àavoir une direction de lissage qui soit alignée (par exemple) le longdes contours

97 / 99Bases du traitement des images

Page 110: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Gaussien orienté

Filtre orienté le long d’un contour contre filtre non orienté

98 / 99Bases du traitement des images

Page 111: Filtrage non linéaire

Filtrage linéaire Filtrage non linéaire

Gaussien orienté

Lissage selon une orientation

I Pour cela il suffit de considèrer :

Σ =

(I 2x Ix IuIx Iy I 2y

)où Ix est la moyenne de la dérivé par rapport à x de l’image sur unpetit voisinage autour de (x , y) et idem en y pour Iy

I Pourquoi ? on sort du cadre de ce cours : voir techniques avancéesen M2.

I Pourquoi ce filtre n’est pas linéaire ? (pourtant, c’est de laconvolution ?)

99 / 99Bases du traitement des images