Vous êtes sur la page 1sur 142

7.

Traitements de base d’une image

1
7. Traitements de base d’une image
Opérations ponctuelles
 Définitions
 Moyenne et contraste
 Histogramme
 Opérations ponctuelles linéaires
 Décalage additif
 Mise à l’échelle multiplicative
 Inversion
 Amélioration du contraste
 Opération arithmétiques entre les images
 Opérations de base
 Réduction du bruit par moyennage

2
7. Traitements de base d’une image
Opérations ponctuelles
 Moyenne
 Image en tons de gris

 Image couleur
 Une moyenne par canal

3
7. Traitements de base d’une image
Opérations ponctuelles
 Moyenne (Luminosité)
Intensité moyenne dans l’image

+1OO%

4
-1OO%
7. Traitements de base d’une image
Opérations ponctuelles

 Contraste
 Peut être défini de plusieurs façons
 Écart type des variables de niveaux d’intensité

 Variation entre valeurs maximale et minimale de niveaux d’intensité


(moins utile , plus rapide)

5
7. Traitements de base d’une image
Opérations ponctuelles

 Contraste
 Plage de valeurs utilisée : C = max - min

+1OO%

6
-1OO%
7. Traitements de base d’une image
Opérations ponctuelles

7
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration des images basée sur les pixels
 Histogramme des niveaux de gris
 Transformation des niveaux de gris
 Amélioration du contraste

8
7. Traitements de base d’une image
Opérations ponctuelles

Histogramme des niveaux de gris ( distribution des niveaux de gris)

 Histogrammes pour différents types d’images

9
7. Traitements de base d’une image
Opérations ponctuelles

Histogramme des niveaux de gris ( distribution des niveaux de gris)

10
7. Traitements de base d’une image
Opérations ponctuelles

Caractérisation par Histogramme des niveaux de gris

Image sous-exposée

Image sur-exposée

11 Image mal quantifiée


7. Traitements de base d’une image
Opérations ponctuelles

SCÈNE DE FAIBLE RADIANCE SCÈNE DE FORTE RADIANCE

% %

niveaux de gris niveaux de gris

SCÈNE DE BAS CONTRASTE SCÈNE DE HAUT CONTRASTE

% %

niveaux de gris niveaux de gris


12
7. Traitements de base d’une image
Opérations ponctuelles

Transformation des niveaux de gris

%
amélioration du
étirement de l’histogramme = ? contraste

niveau de gris après


transformation
GL’

niveau de gris avant


transformation transformation
GL des niveaux de gris

13
7. Traitements de base d’une image
Opérations ponctuelles
Transformation des niveaux de gris
f(x,y)’
f ( x, y )' = m ⋅ f ( x, y ) + b
255
PIXMAX 255
m= =
max − min max − min
 PIXMAX ⋅ min 
b = − 
 max − min 
0 f(x,y) PIXMAX  PIXMAX ⋅ min 
f ( x, y )' = f ( x, y ) −  
min max max − min  max − min 
PIXMAX
f ( x, y )' = ( f ( x, y ) − min)
PIXMAX f ( x, y )' max − min
=
max − min f ( x, y ) − min
PIXMAX
f ( x, y )' = ( f ( x, y ) − min)
max − min
14
7. Traitements de base d’une image
Opérations ponctuelles
Transformation des niveaux de gris
 Expression de la dynamique (recadrage)

Recadrage d’histogramme
15
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste

 Transformation linéaire
 Transformation linéaire avec saturation
 Transformation linéaire par bout avec saturation
 Égalisation de l’histogramme

16
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste

 Transformation linéaire

PIXMAX
f ' ( x, y ) = ( f ( x, y ) − min)
max − min
( f ( x, y ) − min)
f ' ( x, y ) = PIXMAX
max − min
( f ( x, y ) − min)
∈ [0,1]
max − min

17
7. Traitements de base d’une image
Opérations ponctuelles
Transformation linéaire
f(x,y)’

f(x,y)
min max

0 255
min max

18
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste

 Transformation linéaire avec saturation


PIXMAX
f '(x, y) = ( f ( x , y ) − S min )
S max − S min
( f ( x , y ) − S min )
f '(x, y) = PIXMAX
S max − S min
( f ( x , y ) − S min )
∈ [0 ,1 ]
S max − S min
min( f ( x , y )) ≤ S min < S max ≤ max( f ( x , y ))
19
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste
Transformation linéaire avec saturation
GL’
%

GL GL’
min max

0 255
min
Smin Smax
max

20
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste
Transformation linéaire par bout avec saturation

GL’
%

GL GL’
min max

0 255
Smin
min 1 Smax
max2
Smax1/Smin2
21
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste

 Transformation par égalisation d’histogramme

h[i ], i ∈ [0,255] Histogramme non-normalisé


h[i ]
hn [i ] = Histogramme normalisé
DIMX ⋅ DIMY
i
C [i ] = ∑ hn [ j ] Densité de probabilité cumulative
j =0

f ' ( x, y ) = C [ f ( x, y )]⋅ PIXMAX


C [ f ( x, y )]∈ [0,1]
22
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste
Égalisation de l’histogramme

 Le but est de rendre l’histogramme le plus plat possible


 Distribution uniforme des niveaux de gris
 Maximisation de l’entropie de l’image
 Image donnant une information maximale

23
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste
Égalisation de l’histogramme
HC ( f ( x, y ))
f ( x, y )' = (2 − 1)
D

wh
D: Dynamique
(w,h): Dimension de l’image
HC(.): Histogramme cumulé

24
7. Traitements de base d’une image
Opérations ponctuelles
Amélioration du contraste
Égalisation de l’histogramme [densité de probabilité cumulative]

GL’
%

GL GL’
min max

* C[i ]

0 255
min max

25
7. Traitements de base d’une image
Opérations ponctuelles
Opérations ponctuelles linéaires
Forme générale
 g(x,y)=Pf(x,y)+L

 Il faut éviter g(x,y)<0 et g(x,y)>K-1

 Où K-1= intensité maximale (255, souvent)

26
7. Traitements de base d’une image
Opérations ponctuelles
Opérations ponctuelles linéaires
Décalage additif
 Contrôle de la luminosité
 Ici P=1 et –(K-1)<= L <= K-1
 g(x,y)=f(x,y)+L

L=100

L=-100
27
7. Traitements de base d’une image
Opérations ponctuelles

28
7. Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Mise à l’échelle multiplicative
 Ici L=0 et P>0
 g(x,y)=Pf(x,y)
 Modifie la luminosité et le contraste

P=O.5

P=1.5
29
7. Traitements de base d’une image
Opérations ponctuelles

30
7. Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Inversion
 Ici P=-1 et L=255
 g(x,y)= -f(x,y)+255

Inversion

31
7. Traitements de base d’une image
Opérations ponctuelles

32
7. Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Amélioration du contraste
 On étire l’histogramme pour qu’il utilise toute la plage disponible
 On pose A=min(f(x,y)) et B=max (f(x,y))
 On veut que les nouvelles limites soient A’ et B’
 On cherche PA+L=A’ et PB+L=B’
 2 éq et 2 inconnues : P et L P=(B’-A’)/(B-A)
L=(A’B-AB’)/(B-A)

33
7. Traitements de base d’une image
Opérations ponctuelles

34
8. Opérations arithmétiques et logiques entre les images

 Somme d’images
 Ajout de bruit, fusion d’images,...
 Soustraction d’images
 Élimination de l’arrière-plan, dérivation par rapport au temps,…
 Moyenne point à point d’images
 Réduction du bruit
 Produit point à point
 Convolution (lissage, dérivation,…)
 Seuillage
 Donne une image binaire à partir d’une image en niveaux de gris

35
8. Opérations arithmétiques et logiques entre les images

36
8. Opérations arithmétiques et logiques entre les images

Les sources de bruit


 Bruits liés aux conditions de prise de vues
 Ce sont des événements vérifiant les conditions d’acquisition du
signal
 Le bougé
 Problèmes liés à l’éclairage de la scène observée

 Bruits liés au capteur


 Capteur mal réglé
 Capteur de mauvaise qualité

37
8. Opérations arithmétiques et logiques entre les images
Les sources de bruit
 Bruits liés à l’échantillonnage
 Ces bruits reflètent essentiellement des problèmes de
quantification (CCD)
 Précision d’environ 1/512
 Problèmes dans le cas d’applications de grande précision

 Bruits liés à la nature de la scène


 Nuage sur les images satellitaires
 Poussières dans les scènes industrielles
 Brouillard pour les scènes routières

38
8. Opérations arithmétiques et logiques entre les images

 Réduction du bruit par moyennage


 Soit n images d’une même scène, chaque image peut
s’exprimer gi(x,y)=f(x,y)+bi(x,y)
 f(x,y) est l’image non bruitée
 bi (x, y) N(0, σ2 ) est un bruit blanc non corrélé

E{bi (x, y)b j (x, y)} = 0 pour i ≠ j


 L’image moyenne

1 n
g(x, y) = ∑ gi (x, y)
n i =1
8. Opérations arithmétiques et logiques entre les images

 Différents types de bruit


 Bruit additif ou multiplicatif
 P’(i) = b(i) + P(i)
 P’(i) = b(i) * P(i)

et

40
8. Opérations arithmétiques et logiques entre les images

 Différents types de bruit


 Comment est généré b(i) ?
 Loi gaussienne
 Loi uniforme
 Aléatoire

 Principaux types de bruit


 Gaussien
 Poivre et sel

41
8. Opérations arithmétiques et logiques entre les images

 Comment réduire le bruit ?


 Démarche générale :
 Caractériser le bruit présent dans l’image
 Choisir un algorithme approprié
 Pour chaque pixel de l’image
o Étudier la valeur du pixel
o Étudier les valeurs des voisins
o Modifier la valeur du pixel

42
8. Opérations arithmétiques et logiques entre les images

 Filtre Moyenneur
 On affecte à chaque pixel la valeur moyenne obtenue dans le
voisinage : avec j les voisins de i

43
8. Opérations arithmétiques et logiques entre les images

 Élimination du bruit par moyennage


 L’image moyenne: 1 n
g(x, y) = ∑ (f (x, y) + bi (x, y))
n i =1

1 n
g(x, y) = f (x, y) + ∑ (bi (x, y)
n i =1
 Signal inchangé et un nouveau bruit
 Moyenne du nouveau bruit nulle, comme avant

1 n  1 n
E  ∑ (bi (x, y)  = ∑ E(bi (x, y)
 n i =1  n i =1
=0
8. Opérations arithmétiques et logiques entre les images

 Calcul de la variance du bruit/


{
Var(X) = E (X − E {X})2 }
1 n 2
σ = E{( ∑ bi (x, y))2 }
2 =E{X 2 } Si E{X}=0
n i =1
1 n n
= 2 ∑∑ E{bi (x, y)b j (x, y)}
n i =1 j≠ i


1 n n 
= 2 ∑  E{bi (x, y)bi (x, y)} + ∑ E{bi (x, y)b j (x, y) 
n i =1 j≠ i


1 n
= 2 ∑ E{b 2
i (x, y)} Car bruit non corrélé
n i =1
2
σ
=
n
9. Traitements de base d’une image
Opérations locales

 Filtres passe-bas
 Filtre de moyenne
 Filtre Gaussien
 Triangle de Pascal
 Autres filtres
 Moyenne versus médiane
 Filtre médian
 Filtre adaptatif
 Filtres passe-haut
 Opérateurs mathématique
 Masque de détection
 Gradient
 Laplacien
 Kirsch
 Marr-Hildreth
 Marr-Hildreth versus sobel

46
9. Traitements de base d’une image
Opérations locales

Transformation basée sur le voisinage d’un point (x,y):

transformation

0 0 0 0 0 0 0 0 0 0 0
0 0
0 0
⋅ → (x,y) 0 0
0 0
0 0
0 0
0 0
0 0
0 0 0 0 0 0 0 0 0 0 0

Image originale Image traitée

47
9. Traitements de base d’une image
Opérations locales
Convolution discrète
 La convolution discrète est un outil permettant la construction de
filtres linéaires ou de filtres de déplacements invariants
 L ’équation de convolution, notée g(x), de la séquence f(x) avec une
fonction h(x) est :

 h(x) est appelée masque de convolution, noyau de convolution,


filtre, fenêtre, kernel, …
 En pratique, la convolution numérique d'une image se fera
simplement par une sommation de multiplications.
9. Traitements de base d’une image
Opérations locales

Exemple de convolution 2D
9. Traitements de base d’une image
Opérations locales

Exemple de convolution 2D

I * K

Noyau de convolution

Image
9. Traitements de base d’une image
Opérations locales

Convolution numérique R = I*K


K

I R

R(1,1) = I(0,0) K(0,0) + I(1,0) K(1,0) + I(2,0) K(2,0)


+ I(0,1) K(0,1) + I(1,1) K(1,1) + I(2,1) K(2,1)
+ I(0,2) K(0,2) + I(1,2) K(1,2) + I(2,2) K(2,2)
9. Traitements de base d’une image
Opérations locales

Convolution numérique R = I*K


K

I R

R(2,1) = I(1,0) K(0,0) + I(2,0) K(1,0) + I(3,0) K(2,0)


+ I(1,1) K(0,1) + I(2,1) K(1,1) + I(3,1) K(2,1)
+ I(1,2) K(0,2) + I(2,2) K(1,2) + I(3,2) K(2,2)
9. Traitements de base d’une image
Opérations locales

Convolution numérique R = I*K

K
I R

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)
9. Traitements de base d’une image
Opérations locales

Convolution numérique R = I*K

I R

R(N-2,M-2) = I(N-3,M-3) K(0,0) + I(N-2,M-3) K(0,1) + I(N-1,M-3) K(0,3)


+ I(N-3,M-2) K(1,0) + I(N-2,M-2) K(1,1) + I(N-1,M-2) K(1,2)
+ I(N-3,M-1) K(2,0) + I(N-2,M-1 )K(2,1) + I(N-1,M-1) K(2,2)
9. Traitements de base d’une image
Opérations locales

Convolution numérique
 Problème : Que faire avec les bords de l'image ?
 Mettre à zéro (0)
? ? ? ? ? ? ? ? ? ?
 Convolution partielle ? ?
 Sur une portion du noyau
? ?
 Miroir de l'image ? ?
 f(x-1,y) = f(x+1,y) ? ?
 … (pas de solution miracle) ? ?
? ?
? ?
? ?
? ? ? ? ? ? ? ? ? ?
9. Traitements de base d’une image
Opérations locales

Masque de convolution
 Le masque de convolution est le plus souvent
 Carré
 De taille 3x3 ou 5x5 (ou plus, mais impair)

 Ce masque représente un filtre linéaire permettant de modifier l'image.

 La plupart du temps, on divisera le résultat de la convolution par la


somme des coefficients du masque.
 Pour éviter de modifier l'entropie de l'image, la somme des coefficients doit être
égale à 1.
 Dans le cas du Laplacien (plus loin), la somme sera égale à zéro.
9. Traitements de base d’une image
Opérations locales
Transformation par convolution

DF 2 DF 2
g ( x, y) = ∑ ∑ f ( x + m, y + n) ⋅ PSF ( DF
2 + m, 2 + n)
DF

m= − DF n= − DF
2 2
filtre normalisé
OU Point Spread Function
1/9
1 1/9
1 1/9
1 w1 w2 w3 
 DF ou
1/9 X 1/9
1 1/9
1 1/9
1 w4 w5 w6  Dimension
1/9
1 1/9
1 1/9
1 w7 w8 w9  Filtre : 3

résultat divisé par la somme
des poids [wx] du filtre (P-
(P-B)
ou son nombre de pixels (P-(P-H)
57
9. Traitements de base d’une image
Opérations locales

Typologie des Filtres

Pour accélérer les traitements, il est possible de décomposer les filtres en sous-
filtres équivalents qu’on passe un après l’autre.
58
9. Traitements de base d’une image
Opérations locales

Typologie des Filtres

59
9. Traitements de base d’une image
Opérations locales
Typologie des Filtres : suite

 La mise en cascade de filtres (associativité de la convolution) permet de


générer des filtres de grande taille à moindre coût de calculs

60
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas
 Le filtre moyenne
 Permet de lisser l'image (smoothing)
 Remplace chaque pixel par la valeur moyenne de ses voisins
 Réduit le bruit
 Réduit les détails non-important
 Rend floue l'image (blur edges)

 Filtre dont tous les coefficients sont égaux.


 Exemple de filtres moyennes : 1 1 1 1 1

1/9 1/9 1/9 1 1 1 1 1 1 1 1

1/9 1/9 1/9 ou 1/9 1 1 1 1 1 1 1 1


1 1 1 1 1
1/9 1/9 1/9 1 1 1
1 1 1 1 1

61
3x3
5x5
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas
 Filtre de moyenne
 Plus le filtre est grand, plus on coupe les hautes fréquences (les changements rapides)

1 1 1 1 1

1 1 1 1 1
1 1 1

1/9* 1 1 1 1/25* 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1
9. Traitements de base d’une image
Opérations locales

63
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas
 Filtre de moyenne

Image originale Image filtrée


64
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas
 Exemples de filtres moyennes

Original Moyenne 5x5 Moyenne 11x11

65
Source : monkey.geog.ucsb.edu/mh/115b/filter.pdf
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas

 Filtre Gaussien 1 2 1
(1/16) 2 4 2
1 2 1

1 1 1 2 1
1 1
(1/4) * (1/4) = (1/16) 2 4 2
1 1 1 1
1 2 1
1
1 2 1
(1/4) 2 * (1/4) 1 2 1 = (1/16) 2 4 2
1
1 2 1
9. Traitements de base d’une image
Opérations locales

Filtre gaussien (passe-bas)1 −( x 2 + y 2 )


2σ 2
gauss ( x, y) = PSF ( x, y) = ⋅e
2πσ 2

fonction gaussienne 2-D

w1 w2 w3 

w4 w5 w6  DimX = DimY = 8σ + 1
w7 w8 w9  où σ ∈ ]0,3[

67
9. Traitements de base d’une image
Opérations locales

Filtre gaussien (passe-bas)

Image d'une gaussienne


Fonction gaussienne en 3D

Le filtre gaussien donnera un meilleure lissage et une meilleure


réduction du bruit que le filtre moyenne.

68
9. Traitements de base d’une image
Opérations locales

Exemples de filtres gaussiens

Original Gauss 5x5 Gauss 11x11

69
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas
 Triangle de Pascal
 Chaque élément est la somme des éléments supérieur et supérieur gauche
 On choisit une ligne impaire
 On convolue un filtre horizontal avec un filtre vertical
 On obtient un filtre carré
 On normalise par la somme de tous les éléments du filtre

70
9. Traitements de base d’une image
Opérations locales
Filtres passe-bas

 Autres filtres passe-bas

1 4 6 4 1 1 2 3 2 1 0 0 1 0 0
4 16 24 16 4 2 4 6 4 2 0 2 2 2 0
1/256 6 1/81
24 36 24 6 3 6 9 8 3 1/25 1 2 5 2 1
4 16 24 16 4 2 4 6 4 2 0 2 2 2 0
1 4 6 4 1 1 2 3 2 1 0 0 1 0 0
Filtre Gaussien ou binomial Filtre pyramidal Filtre Conique

Obtenu par la convolution de deux filtres de moyenne 3X3


9. Traitements de base d’une image
Opérations locales

Moyenne versus médiane


1 n
 Moyenne d’une suite de x i : x = ∑ xi
 Facile à calculer n i =1
 Complexité O(n)
 Permet de trouver le ’’centre’’ d’une distribution xi
 Sensible aux valeurs extrêmes
9. Traitements de base d’une image
Opérations locales
Filtre Médian
 Filtre non linéaire (ce n’est pas une convolution)
 Coûteux en temps de calcul
 Complexité O(nlog(n))
 On remplace le pixel central par la médiane du groupe
 Sert à éliminer les points isolés sans filtrer par un filtre passe-bas
 Plus robuste aux valeurs extrêmes

10
10 30
30 55
20
20 200
20 20
20 5 10 10 15 20 20 30 30 200

15
15 10
10 30
30
Valeurs d’intensité médiane
9. Traitements de base d’une image
Opérations locales

Filtre Médian
 On affecte à chaque pixel la valeur médiane
obtenue dans le voisinage
 On évite ainsi les valeurs extrêmes

74
9. Traitements de base d’une image
Opérations locales

Filtre Médian

75
9. Traitements de base d’une image
Opérations locales

Filtre Médian

76
9. Traitements de base d’une image
Opérations locales
Filtre médian
(a) image originale
(b) image bruitée
(c) filtre de moyenne
5x5
(d) filtre médian 5x5

ausilieu
le bruit
de laajouté
moyenne
à
du
l’image
filtre est
parsupérieur
voisinage,à
la
ondimension
utilise la médiane
du filtre,
celui-ci
(d’oùestson
inefficace
nom) !

77
9. Traitements de base d’une image
Opérations locales

Choix du filtre
 Bruit gaussien : filtre moyenneur

 Bruit poivre et sel : filtre médian

78
9. Traitements de base d’une image
Opérations locales

Filtres adaptatifs

79
9. Traitements de base d’une image
Opérations locales

Filtres passe-haut: Détection de contours


 Opérations mathématiques

- =
Image originale Image filtrée passe-bas Hautes fréquences

80
Caractéristiques des images obtenues
par filtrage spatial

− =

Lissage Rehaussement
(filtre passe-bas) (filtre passe-haut)

81
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Au niveau des pixels
 Ex: filtre 3X3 (à partir du filtre de moyenne)

0 0 0 1 1 1  −1 −1 −1
1 1 1
δ(x, y) − h(x, y) =  0 9 0  − 1 1 1 =  −1 8 −1
9  9  9 
 0 0 0  1 1 1  −1 −1 −1

 Ex: filtre 5X5  −1 −1 −1 −1 −1


 −1 −1 −1 −1 −1
1  
 −1 −1 24 −1 −1
25 
 −1 −1 −1 −1 −1
 −1 −1 −1 −1 −1
9. Traitements de base d’une image
Opérations locales

Filtres passe-haut: Détection de contours

83
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Masque de détection
 Contour d’une ligne

 Contour d’un objet


Filtre passe-haut: Détection de
contours

− =

Passe-bas Passe-haut
11 1 11 1 1 11 1 11 -1
-1-1-1-1 -1-1 -1
-1-1-1-1
11 1 11 1 111 1 11 -1
-1-1-1-1
-1-1-1-1
-1 -1 -1
11 1 11 1 1 1 1 1 -1
-1 -1 -1 -1 -1 -1-1-1-1
X 111 1 111 1
1 111 1 11 X -1
-1-1-1-1824
-1 48-1 -1-1-1-1
-1
1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1
1 1 1
11 1 11 1 111 1 11 -1-1-1-1
-1
-1
-1 -1-1-1-1-1
-1 -1-1
11 1 11 1 1 11 1 11 -1-1-1-1 -1
-1 -1-1-1-1
-1 -1
85
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Détection de contours par gradient
 Contour = gradient élevé
 Technique en 2 étapes :
 Estimer le gradient (convolution)
 Localiser les valeurs élevées (seuillage)

86
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Détection de contours par gradient:Convolution
 Multiplication locale par un masque
 I’(x,y) = I(x,y) * M

87
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Estimation du Gradient
 Soit un pixel f(x,y), le gradient y sera

Gx = f * Mx
Gy = f * My

 La norme du gradient

 La direction du gradient

88
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours Différences
avant et
 Approximation du gradient (en x –arêtes verticales) arrière

∂f f (x + ∆ x , y) − f (x, y) f (x, y) − f (x − ∆ x , y)
= lim = lim
∂x ∆ x → 0 ∆x ∆ x →0 ∆x
∆x = 1 Masque de convolution 1 -1 ou -1 1
∂f f (x + ∆ x , y) − f (x − ∆ x , y)
= lim Différence centrée
∂x ∆ x →0 2∆ x
∆x = 1 Masque de convolution -1 0 1

 Approximation du gradient (en y –arêtes horizontales)


-1 1
Masque de convolution 1 ou -1 ou 0
ou 0
-1 1 -1
1
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Filtres différentiels

00 FF 00 Image

profil d’une
ligne
horizontale
(dérivée
première)
seconde)

(a) (b)
90
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Dérivée première (gradient)

| Gx | + | Gy |

-1
-1 -20 -1
1
0
-2 00 02 || G
Gyx ||
1
-1 20 11
91
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Sobel
 Le passe-haut intensifie le bruit; on fait donc un passe-bas
pour le diminuer.
 Composition d’un filtre gaussien et d’un gradient

 −1 −2 −1  −1 0 1 
0 0 0 et  −2 0 2 
   
 1 2 1   −1 0 1 
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Sobel (=Gaussien+Gradient)  −1 −2 −1  −1 0 1 
0 0 0  −2 0 2 
Deux masques de taille 3x3 :   et  
 1 2 1   −1 0 1 
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Filtres de Prewitt et Sobel
(a) (b)
(c)
(d)Roberts
Prewitt
Sobel cross-gradient
operators
operators
z1 z2 z3 -1 -1
-2 -1
∂∂ff ∂f ((zz77++2zz88++zz99))
z4 z5 z6 0 01 0 == ≈ ( z5 − z9 )
∂∂yy ∂y−−((zz11++2zz22++zz33))
z7 z8 z9 1 210 -1
1
où zx : valeur du
niveau de gris -1 0 1
∂∂ff ∂f ((zz33++2zz66++zz99))
-1 0 21
-2 == ≈ ( z6 − z8 )
∂∂xx ∂x−−((zz11++2zz44++zz77))
-1 -1
0 10
∂f ∂f
∇f ≈ G x + G y ≈ +
∂x ∂y
94
9. Traitements de base d’une image
Opérations locales
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Amélioration des arêtes et des contours
(a) image originale
(b) image obtenue
à partir des valeurs
de magnitude du
gradient [‘masques’
de Prewitt]
(c) image originale
dont les pixels ayant
1 gradient > 25**
ont été mis à 255
∂f ∂f ∂f ∂f
* ou > 25 * et ≤ 25 (d) idem à c [sauf pour
∂x ∂y ∂x ∂y les pixels dont les
2 gradients ≤ 25**
qui ont été mis à 0
- image binaire]
96
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Roberts
et
Deux masques de taille 2x2 :
9. Traitements de base d’une image
Opérations locales
9. Traitements de base d’une image
Opérations locales
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Laplacien ∂ ∂
∇2 = ( 2
+ 2
)
 Dérivée seconde ∂x ∂y
 Différence centrée

∂ 2f (x, y)
= f ' (x + 1, y) − f ' (x, y)
∂x 2
=[f(x+1,y)-f(x,y)]-[f(x,y)-f(x-1,y)]
= f(x+1,y)-2f(x,y)+f(x-1,y)
 Noyau de convolution

[1 −2 1]
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Laplacien (suite)
 Hautes fréquences dans toutes les directions

 1  0 1 0
∂ ∂
[1 −2 1] +  −2 = 1 −4 1 
2
∇ =( 2
+ 2
)
∂x ∂y
Autres formes  1  0 1 0 

 0 −1 0   −1 −1 −1
 −1 4 −1 Ou  −1 8 −1
   
 0 −1 0   −1 −1 −1
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Laplacien (suite)
 Dérivée seconde du signal image
 Localisation des contours par le passage par 0
 Différents masques :

 0 −1 0   −1 −1 −1
 −1 4 −1  −1 8 −1
   
 0 −1 0   −1 −1 −1
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Kirsch
 8 masques, dans chaque direction (45°)
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Marr-Hildreth
 Le Laplacien augmente encore plus le bruit
 On filtre l’image avec une gaussienne
 On prend le Laplacien de l’image filtrée
 On peut donc filtrer directement avec le laplacien d’une
gaussienne!
g=(f*N)*L=f*(N*L)

104
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Marr-Hildreth

0 -1 -2 -1 0
-1 0 2 0 -1
-2 2 8 2 -2
-1 0 2 0 -1
0 -1 -2 -1 0

-1 -3 -4 -3 -1
-3 0 6 0 -3
-4 6 20 6 -4
-3 0 6 0 -3
-1 -3 -4 -3 -1
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Marr-Hildreth versus Sobel


 Plus rapide
 Une seule convolution pour toutes les directions
 Pas de somme de valeurs absolues ou de racine
 Moins robuste (plus sensible au bruit)
 Non directionnel
 Donne des contours plus « fermés »

106
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
 Filtres passe-haut
 Sobel
 Marr-Hildreth
 Canny
…

107
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 On utilise un filtre passe-haut et on compare la force du


contour avec un seuil

Image originale Sobel Laplacien


108
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Sobel
 On applique le filtre horizontal, puis vertical
 On somme les valeurs absolues, ou racine carrée des carrées
des valeurs
 Seuillage: si la valeur est assez élevée, la dérivée est forte et il
y’a un contour

109
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Marr-Hildreth
 On applique le filtre de Marr-Hildreth
 On détecte les PPZ (Passages Par Zéro)
 Seuillage particulier, sur un Kernel (souvent 3X3)
 S’il y’a changement de signe entre la valeur centrale et un des huit voisins, alors il y’a
PPZ
 Changer de signe n’est plus suffisant, il faut passer de −ε à +ε
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

111
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Canny
 Critères
 Taux d’erreur bas
 Points biens localisés
 Réponse unique pour un contour

112
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Canny

113
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Seuillage
 Différents types de seuillage
 si ndg > sb alors ndg = 255
 si ndg < sh alors ndg = 0

 si ndg < s alors ndg = 0 sinon ndg = 255

Binarisation
114
Binarisation
 Réduction du nombre de couleurs à 2 (N & B)

115
Binarisation
 Comment trouver le bon seuil ?
 Localisation des modes de l’histogramme

116
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Canny
 Seuillage par Hystérésis
 On utilise 2 seuils T1 et T2 (T1<T2)
 Tous les pixels plus petits que T1 sont classés « non contours »
 Tous les pixels entre T1 et T2 sont classés « peut-être »
 Tous les pixels plus grand que T2 sont classés « contours »
 Tous les pixels classés « peut-être » adjacents à des pixels contours sont classés «
contours »
 On commence à suivre un contour avec un pixel >T2 et on termine par un pixel <T1

117
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours

 Images couleur
 Utilisation de R,G,B puis combinaison
 Autres méthodes plus robustes
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Fermeture de contours
 Problème des contours ouverts

Seuillage fermeture
9. Traitements de base d’une image
Opérations locales
Filtres passe-haut: Détection de contours
Fermeture de contours:
 Codage de Freeman
 Représentation discrète d’un contour

X0,Y0 01067744
9. Traitements de base d’une image
Opérations locales

Filtrage fréquentiel

 Une image peut être représentée par un signal 2D


 Sa transformée de Fourier donne donc l’intensité en
fonction de la fréquence
 On peut appliquer des filtres passe-bas et passe-haut sur
l’image pour faire ressortir certaines gammes de
fréquences

121
9. Traitements de base d’une image
Opérations locales

Filtrage fréquentiel
 Dans une image, les basses fréquences représentent les zones lisses, qui
varient peu
 Les hautes fréquences sont les zones très variables: textures, arrêtes, coins
 Un filtre passe-bas fait passer les basses fréquences
 Élimine les hautes fréquences, diminue le bruit
 Permet de lisser , d’adoucir les arêtes
 Un filtre passe-haut fait passer les hautes fréquences
 Met en évidence les arêtes, les contours, les ombres
 Augmente le bruit dans l’image

122
9. Traitements de base d’une image
Opérations locales

Transformée de Fourier
 Représentation fréquentielle d’une fonction donnée

F(ν) = ∫ f ( t ) e −i 2 πνt dt
−∞

1

i 2 πνt
f (t) = F( ν ) e dt
2π − ∞
 Images = fonctions réelles Є L 2

2


f (t ) dt < ∞
9. Traitements de base d’une image
Opérations locales

TF, Quelques définitions…


 TF est imaginaire F (ν ) = R(ν ) + i I (ν ) = F (ν ) e iφ (ν )

 Spectre de Fourier F (ν ) = R(ν ) + i I (ν ) = R 2 (ν ) + I 2 (ν )

 Phase φ (ν ) = tan −1 (I (ν ) R(ν ) )

 Spectre de Puissance (densité spectrale)


iφ (ν ) iφ (ν ) 2
P(ν ) = F (ν ) e ⋅ F (ν ) e = F (ν )
9. Traitements de base d’une image
Opérations locales

Résultats rectangle 1D

125
9. Traitements de base d’une image
Opérations locales
Résultat rectangle 2D

126
9. Traitements de base d’une image
Opérations locales
Propriétés de la TF
 Séparable
 Propriétés de translation
 Périodicité et symétrie (conjugué)
 Rotation
 Distributivité
 Échelle
 Valeur moyenne de l’intensité
 Dérivée
 Laplacien

127
9. Traitements de base d’une image
Opérations locales
Propriétés de la TF suite

128
9. Traitements de base d’une image
Opérations locales
Espace discret

 Cas continu (image optique) peut s’exprimer pour le cas discret (image
numérique). En 1D, on a

{ f ( x0 ), f ( x0 + ∆x), f ( x0 + 2∆x), f ( x0 + 3∆x),K , f ( x0 + ( M − 1)∆x)}


f ( x) → 
{ f (0), f (1), f (2), f (3), K , f ( M − 1)}

 M pas d’échantillonnage uniformes Δx


 Pour les images, on a des pas Δx et Δy pour une fonction donnée par

f ( x, y ) → { f (0,0), f (1,0), f (0,1), f (2,0),K , f ( M − 1, N − 1)}


9. Traitements de base d’une image
Opérations locales
TF discrète
M −1
1
F (µ ) =
M

x =0
f ( x) e −i 2πxµ / M µ = 0 ,1, 2,K , M − 1

M −1
f ( x) = ∑ F ( µ ) ei 2πxµ / M x = 0 ,1, 2 ,K , M − 1
µ =0

 On passe de l’espace discret aux fréquences discrètes


avec les pas d’échantillonnage reliés par:

1
∆µ =
M ∆x
9. Traitements de base d’une image
Opérations locales
TF discrète 2D
soit M = N
1 N −1 N −1
F(µ, ν) = ∑∑ f ( x, y) e −i 2 π ( xµ + yν ) / N µ , ν = 0,1, 2 ,K , N − 1
N x =0 y =0

1 N −1 N −1
f ( x, y) = ∑∑ F(µ, ν) ei 2 π( xµ+ yν ) / N x , y = 0,1, 2 ,K , N − 1
N µ = 0 ν =0
 Note: la normalisation a été répartie sur la paire de transformée…

131
9. Traitements de base d’une image
Opérations locales

Filtrage fréquentiel

 Pour appliquer un filtre:


 On veut multiplier le signal de l’image par une fonction dans
le domaine fréquentiel
 Reviens à convoluer dans le domaine spatial avec la
transformée de Fourier inverse du filtre
 L’image est discrète: convolution discrète
 On utilise donc un Kernel de convolution

132
9. Traitements de base d’une image
Opérations locales

133
Module et phase de la transformée de Fourier
La transformée de Fourier d’1 image réelle est 1 image dont les valeurs sont des
nombres complexes :

c = x + i y = A e iφ

 La phase contient
l’information de position
des structures de l’image
(contours)

 Le module contient des informations sur :


- la répartition fréquentielle de l’image
- les valeurs (en niveaux de gris) de l’image

TFD
134 inverse :
135
Propriétés de la TF continue en 2D

Linéarité : F [ f(x,y) ] = F(u,v) et F [ g(x,y) ] = G(u,v) alors

F [ a f(x,y) + b g(x,y) ] = a F(u,v) + b G(u,v)

136
Propriétés de la TF continue en 2D (2)

: séparabilité

137
Propriétés de la TF continue en 2D (3)
Changement d’échelle : F [ f(ax,by) ] = 1/ab F( u/a , v/b )

138
Exemple : rotation de 45°

139
Filtrage fréquentiel
 Filtrage passe-bas
r=128

r=64 r=32 r=16 r=8

140
9. Traitements de base d’une image
Opérations locales

Filtrage fréquentiel
 Filtrage passe-haut
r=128

r=8 r=16 r=32 r=64

141
9. Traitements de base d’une image
Opérations locales

Filtrage fréquentiel
 Filtrage passe-bande
 On définit la bande de fréquence que l’on souhaite conserver

142

Vous aimerez peut-être aussi