La dilatation en niveau de gris

Download Report

Transcript La dilatation en niveau de gris

Morphologie pour le traitement d’images
en niveau de gris
Cours de traitement d’images | Décembre 2012
John Chaussard | Paris XIII , Institut Galilée , LAGA | Bureau D402
[email protected]
Chapitre
1
Introduction
INTRODUCTION
Une image binaire est un sous-ensemble I de ℀𝑛 : on représente les
points appartenant à I par des pixels blancs sur une grille, et les autres
points par des pixels noirs.
I = { (-2,-1),(-2, 0),(-1,0),(1,-1),(1,1) }
Décembre 2012
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
LAGA – Institut Galilée – Paris XIII
3
INTRODUCTION
On peut aussi représenter une image binaire par un relief
topographique, où les pixels à 1 sont les sommets et les pixels à 0 sont
le sol.
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
Décembre 2012
LAGA – Institut Galilée – Paris XIII
4
INTRODUCTION
En général, dans une image, les valeurs des pixels ne sont pas limitées
à 0 et 1, mais peuvent prendre des valeurs dans différents ensembles.
Par exemple, une image en niveau de gris (8 bits) de dimension n
est une fonction d’un sous-ensemble de β„€2 ou β„€3 dans 0; 255 (à
chaque pixel, on associe une valeur entière entre 0 et 255.
176 173 172 174 175 174 175
179 185 187 181 174 173 165
197 181 168 167 171 169 170
161 170 180 183 180 174 175
Décembre 2012
LAGA – Institut Galilée – Paris XIII
5
INTRODUCTION
On peut noter d’autres types d’images, comment les images en
niveau de gris 16 bits ou 32 bits, permettant de récupérer des
informations plus précises (souvent utilisé dans des domaines tels que
l’astronomie, le médical, …).
Ce sont en général des applications d’un sous-ensemble de β„€2 ou
β„€3 dans 0; 216 βˆ’ 1 ou 0; 232 βˆ’ 1 .
210 246 283 281 292
186 231 346 450 417
179 189 312 475 400
Décembre 2012
LAGA – Institut Galilée – Paris XIII
6
INTRODUCTION
Les images couleur sont généralement des applications d’un sousensemble de β„€2 dans 0; 255 3 .
Canal bleu
89
53
73
51
51
53
54
60
57
15
30
44
53
55
58
91 23
95 3499 4710261 9861 60
70 65
86 6195 639768 9967 65
866110174 113
89 111
101 110
102 101
113 111
100115
99 116
103 115
107 113
106 104 Canal vert
127 124 125 117 115 113
124 116 112 116 115 111
Canal rouge
Décembre 2012
LAGA – Institut Galilée – Paris XIII
7
INTRODUCTION
Les images HDR sont généralement des applications d’un sousensemble de β„€2 dans ℝ3 .
Canal bleu
0,55 0,53 0,57 0,66 0,71
0,7
0,61 0,61 0,65 0,72 0,79 0,79
0,55 0,53 0,57 0,66 0,71
0,62 0,63
0,6
0,59
0,7
0,6
0,71
0,61 0,61 0,56
0,65 0,35
0,720,350,79
0,490,79
0,55 0,61
0,72 0,71
0,620,76
0,630,84
0,6 0,91
0,59 0,92
0,6
0,71
0,8
0,81
0,560,85
0,350,91
0,35 1,01
0,49 1,09
0,55 0,61 Canal vert
0,79
0,8
0,77 0,75 0,79 0,99
0,71 0,46 0,45 0,62 0,72
0,9
Canal rouge
Décembre 2012
LAGA – Institut Galilée – Paris XIII
8
INTRODUCTION
Dans la suite, on s’intéressera surtout aux images 2d en niveau de
gris 8 bits.
Tout comme les images
binaires, on peut voir toute
image en niveau de gris comme
un relief topographique, où les
valeurs élevées sont des
montagnes tandis que les
valeurs basses sont des fossés.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
9
INTRODUCTION
On définira de manière générale une image I n-dimensionnelle
comme une application d’un sous-ensemble A de ℀𝑛 (appelé le
domaine de I) vers un ensemble quelconque B (qui représente
les valeurs de I).
On écrira : soit 𝑰: 𝑨 βŠ‚ ℀𝒏 β†’ 𝑩
Décembre 2012
LAGA – Institut Galilée – Paris XIII
10
PLAN
Erosion et dilatation en niveau
de gris
Filtres par reconstruction
Reconstruction supérieure
Reconstruction inférieure
Erosion
Dilatation
Filtres avancés
Ouverture et fermeture en
niveau de gris
Ouverture
ASF
H-extrema et maxima régionaux
Ligne de partage des eaux
Fermeture
LAGA – Institut Galilée – Paris XIII
Chapitre
2
Erosion et dilatation en niveau de gris
Chapitre
Section
2
L’érosion
1
L’ÉROSION EN NIVEAU DE GRIS
Revenons sur une image binaire, et calculons l’érosion de I par
E:
0
1
0
0
0
0
1
1
0
1
0
1
E
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Décembre 2012
Quelle « formule » a-t-on appliqué pour calculer la
valeur de ces trois pixels ?
> On a remplacé la valeur du pixel par le
minimum des valeurs des pixels de l’élément
structurant 0 0 0 0 0 0 0 0 0
I
LAGA – Institut Galilée – Paris XIII
πΌβŠ–πΈ
14
L’ÉROSION EN NIVEAU DE GRIS
On peut définir l’érosion binaire, tout comme l’érosion en
niveau de gris, en termes de minimum :
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 (I est donc une image n-dimensionnelle
de domaine A et dont les valeurs d’arrivée se situent dans
B), et 𝐸 βŠ‚ ℀𝑛 un élément structurant.
On définit l’érosion de I par E l’application notée 𝐼 βŠ– 𝐸
telle que, βˆ€π‘₯ ∈ 𝐴, 𝐼 βŠ– 𝐸 π‘₯ = π‘€π‘–π‘›π‘¦βˆˆπΈπ‘₯ 𝐼(𝑦)
On dira que βˆ€π‘¦ βˆ‰ 𝐴, 𝐼 𝑦 = +∞. Ceci fait sens si l’élément
structurant contient l’origine (ce qui est souvent le cas en
pratique).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
15
L’ÉROSION EN NIVEAU DE GRIS
Ex : Calculer 𝐼 βŠ– 𝐸
1
1
0
0
1
1
0
1
0
E
82
76
81
81
81
75
76
76
80
81
75
75
80
77
80
84
79
78
77
76
76
79
78
75
82
82
84
80
83
84
80
77
77
80
79
78
91
92
94
96
93
96
82
82
82
80
80
83
102 100 103 103 110 112
91
91
92
94
93
93
100 110 109 112 110 115 I
100 100 100 103 103 110
Décembre 2012
LAGA – Institut Galilée – Paris XIII
πΌβŠ–πΈ
16
L’ÉROSION EN NIVEAU DE GRIS
Ex : Calculer 𝐼 βŠ– 𝐸
1
0
0
0
1
1
0
0
1
!! Si l’élément structurant ne contient
pas l’origine, alors on peut avoir des
infinis dans le résultat de l’érosion.
E
82
76
81
81
81
75
76
81
79
75
75 "+∞"
80
77
80
84
79
78
77
76
79
78
78
75
82
82
84
80
83
84
80
77
80
83
79
78
91
92
94
96
93
96
82
82
84
80
83
84
102 100 103 103 110 112
91
92
94
96
93
96
100 110 109 112 110 115 I
102 100 103 103 110 112
Décembre 2012
LAGA – Institut Galilée – Paris XIII
πΌβŠ–πΈ
17
L’ÉROSION EN NIVEAU DE GRIS
Regardons l’effet « topographique » de l’érosion
On considère I comme un relief, avec ses
montagnes et ses canyons.
L’érosion de I par E revient à creuser les
flancs de terre de I avec E : l’érosion rétrécit
(en hauteur et largeur) les montagnes, et
élargit les trous.
I = imread('line.png');
E = strel('line',27,0);
Erod = imerode(I, E);
E
I
πΌβŠ–πΈ
Décembre 2012
LAGA – Institut Galilée – Paris XIII
18
L’ÉROSION EN NIVEAU DE GRIS
E
πΌβŠ–πΈ
I
I = imread('image_ex1.png');
E = strel('disk',14,0);
Erod = imerode(I, E);
Décembre 2012
LAGA – Institut Galilée – Paris XIII
19
Chapitre
Section
2
La dilatation
2
LA DILATATION EN NIVEAU DE GRIS
Revenons sur une image binaire, et calculons la dilatation de I
par1 E1 : 0
0
0
1
1
1
0
E
Quelle « formule » a-t-on appliqué pour calculer la
valeur de ces trois pixels ?
> On a remplacé la valeur du pixel par le
maximum des valeurs des pixels de l’élément
structurant tourné
0 0 de1 180°
1 1 1 0 0 0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
Décembre 2012
I
LAGA – Institut Galilée – Paris XIII
πΌβŠ•πΈ
21
LA DILATATION EN NIVEAU DE GRIS
On peut définir la dilatation binaire, tout comme la dilatation en
niveau de gris, en termes de maximum:
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ‚ ℀𝑛 un élément structurant.
On définit la dilatation de I par E l’application notée 𝐼 βŠ•
𝐸 telle que, βˆ€π‘₯ ∈ 𝐴, 𝐼 βŠ• 𝐸 π‘₯ = π‘€π‘Žπ‘₯π‘¦βˆˆπΈπ‘₯ 𝐼(𝑦)
On dira que βˆ€π‘¦ βˆ‰ 𝐴, 𝐼 𝑦 = βˆ’βˆž. Ceci fait sens si l’élément
structurant contient l’origine (ce qui est souvent le cas en
pratique).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
22
LA DILATATION EN NIVEAU DE GRIS
Ex : Calculer 𝐼 βŠ• 𝐸
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
E
𝐸
82
76
81
81
81
75
82
82
81
84
81
81
80
77
80
84
79
78
82
82
84
84
84
84
82
82
84
80
83
84
91
92
94
96
93
96
91
92
94
96
93
96
102 100 103 103 110 112
102 100 103 103 110 112
102 110 109 112 110 115
100 110 109 112 110 115 I
102 110 110 112 112 115
Décembre 2012
LAGA – Institut Galilée – Paris XIII
πΌβŠ•πΈ
23
LA DILATATION EN NIVEAU DE GRIS
Ex : Calculer 𝐼 βŠ• 𝐸
0
0
1
0
0
1
0
0
1
!! Si l’élément structurant ne contient
pas l’origine, alors on peut avoir des
infinis dans le résultat de la dilatation.
E
82
76
81
81
81
75
"-∞" 82
77
81
84
81
80
77
80
84
79
78
"-∞" 82
82
84
84
83
82
82
84
80
83
84
"-∞" 91
92
94
96
93
91
92
94
96
93
96
"-∞" 102 100 103 103 110
102 100 103 103 110 112
"-∞" 102 110 109 112 110
100 110 109 112 110 115 I
"-∞" 102 110 109 112 110
Décembre 2012
LAGA – Institut Galilée – Paris XIII
πΌβŠ•πΈ
24
LA DILATATION EN NIVEAU DE GRIS
Regardons l’effet « topographique » de la dilatation
On considère I comme un relief, avec ses
montagnes et ses canyons.
La dilatation de I par E revient à élargir les
flancs de terre de I avec E : la dilatation élargit
les montagnes, et rétrécit (en hauteur et
largeur) les trous.
I = imread('line.png');
E = strel('line',27,0);
Dil = imdilate(I, E);
E
πΌβŠ•πΈ
I
Décembre 2012
LAGA – Institut Galilée – Paris XIII
25
LA DILATATION EN NIVEAU DE GRIS
E
πΌβŠ•πΈ
I
I = imread('image_ex1.png');
E = strel('disk',14,0);
Dil = imdilate(I, E);
Décembre 2012
LAGA – Institut Galilée – Paris XIII
26
Chapitre
2
Section
3
Propriétés de l’érosion et de la
dilatation
EROSION ET DILATATION : PROPRIÉTÉS
On définit une relation d’ordre entre les images en niveau de
gris :
Soient deux images 𝐼, 𝐽: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡,
𝐼 ≀ 𝐽 ↔ βˆ€π‘₯ ∈ 𝐴, 𝐼 π‘₯ ≀ 𝐽(π‘₯)
Cette relation d’ordre remplacera le relation d’inclusion utilisée
pour les propriétés des images binaires.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
28
EROSION ET DILATATION : PROPRIÉTÉS
On définira aussi le maximum et le minimum de deux images :
Soient deux images 𝐼, 𝐽: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, βˆ€π‘₯ ∈ 𝐴
𝐼 ∨ 𝐽 π‘₯ = π‘€π‘Žπ‘₯ 𝐼 π‘₯ , 𝐽 π‘₯
𝐼 ∧ 𝐽 π‘₯ = 𝑀𝑖𝑛(𝐼 π‘₯ , 𝐽 π‘₯ )
Décembre 2012
LAGA – Institut Galilée – Paris XIII
29
EROSION ET DILATATION : PROPRIÉTÉS
L’érosion en niveau de gris possède les mêmes propriétés
que l’érosion binaire : décomposable, invariante par
translation de l’image, croissante du point de vue de
l’image, décroissante du point de vue de l’élément
structurant, …
La dilatation en niveau de gris possède les mêmes propriétés
que la dilatation binaire : associative, commutative,
invariante par translation, croissante, décomposable, …
Attention : comme dit précédemment, la relation d’inclusion
doit être remplacée par le symbole ≀ défini à la diapositive 22.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
30
EROSION ET DILATATION : PROPRIÉTÉS
La dilatation et l’érosion en niveau de gris sont des opérateurs
duaux. Si on pose 𝐼 𝑐 π‘₯ = βˆ’πΌ(π‘₯), alors
𝑐
𝑐
𝐼 βŠ• 𝐸 π‘₯ = 𝐼 βŠ– 𝐸 (π‘₯)
Décembre 2012
LAGA – Institut Galilée – Paris XIII
31
EROSION ET DILATATION : PROPRIÉTÉS
Nous possédons en plus, pour les images en niveau de gris,
une autre propriété de décomposabilité plus forte que celle déjà
obtenue pour les images binaires.
Cette propriété porte sur la décomposition d’un élément
structurant en deux maximums :
Soient 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸, 𝐹 βŠ‚ ℀𝑛 ,
πΌβŠ• 𝐸∨𝐹 = πΌβŠ•πΈ ∨ πΌβŠ•πΉ
𝐼 βŠ– 𝐸 ∨ 𝐹 = 𝐼 βŠ– 𝐸 ∧ (𝐼 βŠ– 𝐹)
Décembre 2012
Rappel :
Ici, I est une image en niveau de gris ndimensionnelle,
E et F sont des éléments structurant nLAGA – Institut Galilée – Paris XIII
32
Chapitre
2
Section
Conclusion & applications
4
EROSION ET DILATATION : CONCLUSION &
APPLICATIONS
L’érosion permet de creuser les flancs d’une image, ce qui
provoque un rétrécissement (en altitude et en largeur) de ses
montagnes, et un élargissement (rien en profondeur) des ses
canyons.
La dilatation permet d’élargir (rien en altitude) les
montagnes d’une image, et rétrécit (en largeur et profondeur)
ses canyons.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
34
EROSION ET DILATATION : CONCLUSION &
APPLICATIONS
E est un disque euclidien de rayon 20.
𝐼
Décembre 2012
πΌβŠ•πΈ
LAGA – Institut Galilée – Paris XIII
πΌβŠ–πΈ
35
EROSION ET DILATATION : CONCLUSION &
APPLICATIONS
Tout comme nous l’avions fait en binaire, nous
pouvons détecter les contours d’une image
avec l’érosion et la dilatation.
I
𝐼 βŠ• Ξ“4 βˆ’ 𝐼
𝐼 βˆ’ 𝐼 βŠ– Ξ“4
(𝐼 βŠ• Ξ“4 ) βˆ’ 𝐼 βŠ– Ξ“4
Chapitre
3
Ouverture et fermeture en niveau de gris
Chapitre
Section
3
L’ouverture
1
L’OUVERTURE EN NIVEAU DE GRIS
En niveau de gris, l’ouverture se définit de la même manière
qu’en binaire :
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ† ℀𝑛 , on définit l’ouverture de I
par E comme
𝐼∘𝐸 = πΌβŠ–πΈ βŠ•πΈ
Décembre 2012
LAGA – Institut Galilée – Paris XIII
39
L’OUVERTURE EN NIVEAU DE GRIS
Regardons l’effet « topographique » de l’ouverture
On considère I comme un relief, avec ses
montagnes et ses canyons.
L’ouverture de I par E revient à raser les
montagnes moins larges que E.
I = imread('line.png');
E = strel('line',27,0);
Op = imopen(I, E);
E
I
𝐼∘𝐸
Décembre 2012
LAGA – Institut Galilée – Paris XIII
40
L’OUVERTURE EN NIVEAU DE GRIS
E
I
Remarquez l’effet
de creusement ici
𝐼∘𝐸
I = imread('image_ex1.png');
E = strel('disk',14,0);
Op = imopen(I, E);
Décembre 2012
LAGA – Institut Galilée – Paris XIII
41
Chapitre
Section
3
La fermeture
2
LA FERMETURE EN NIVEAU DE GRIS
En niveau de gris, la fermeture se définit de la même manière
qu’en binaire :
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ† ℀𝑛 , on définit la fermeture de I
par E comme
𝐼⦁𝐸 = 𝐼 βŠ• 𝐸 βŠ– 𝐸
Décembre 2012
LAGA – Institut Galilée – Paris XIII
43
LA FERMETURE EN NIVEAU DE GRIS
Regardons l’effet « topographique » de la fermeture
On considère I comme un relief, avec ses
montagnes et ses canyons.
La fermeture de I par E revient à combler les
ravins plus étroits que E.
I = imread('line.png');
E = strel('line',27,0);
Cl = imclose(I, E);
E
𝐼⦁𝐸
I
Décembre 2012
LAGA – Institut Galilée – Paris XIII
44
LA FERMETURE EN NIVEAU DE GRIS
E
I
Remarquez l’effet
de jonction ici
𝐼⦁𝐸
I = imread('image_ex1.png');
E = strel('disk',14,0);
Cl = imclose(I, E);
Décembre 2012
LAGA – Institut Galilée – Paris XIII
45
Chapitre
3
Section
3
Propriétés de l’ouverture et de la
fermeture
OUVERTURE ET FERMETURE : PROPRIÉTÉS
L’ouverture en niveau de gris possède les mêmes propriétés
que l’ouverture binaire : anti-extensive, croissante du point
de vue de l’image, décroissante du point de vue de
l’élément structurant, idempotente …
La fermeture en niveau de gris possède les mêmes
propriétés que la fermeture binaire : extensive, croissante du
point de vue de l’image, et du point de vue de l’élément
structurant, idempotente …
Attention : comme dit précédemment, la relation d’inclusion
doit être remplacée par le symbole ≀ défini à la diapositive 22.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
47
Chapitre
3
Section
Conclusion & applications
4
OUVERTURE ET FERMETURE : CONCLUSION &
APPLICATIONS
L’ouverture permet d’aplanir les sommets d’une image.
La fermeture permet de combler les ravins d’une image.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
49
CAS PRATIQUE : SUPPRESSION DE BRUIT POIVRE
ET SEL
I = imread('chien_bruit.png');
Problème : supprimer le bruit sur l’image.
Gamma4 = strel('diamond', 1);
Op = imopen(I, Gamma4);
DeuxGamma8 = strel('square', 5);
Cl = imclose(Op, DeuxGamma8);
𝐼
Cette technique fonctionne
généralement bien pour le bruit
« poivre & sel »
(𝐼𝐼 ∘ Ξ“44 )⦁2Ξ“8
Décembre 2012
LAGA – Institut Galilée – Paris XIII
50
CAS PRATIQUE : TOP HAT
Problème : extraire les grains de riz de l’image
𝐼
Seuil à 100
Seuil à 130
Le seuil à 100 permet de correctement extraire les grains du
bas, et le seuil à 130 permet d’extraire les grains du haut. Le
gradient d’éclairage vertical ne nous permet pas de trouver
un seuil satisfaisant !
Décembre 2012
LAGA – Institut Galilée – Paris XIII
51
CAS PRATIQUE : TOP HAT
Solution : utiliser une ouverture pour extraire le fond de l’image
𝐼
𝐸
𝐼∘𝐸
Seuil à 𝐼50
βˆ’ de
(𝐼 ∘𝐼 𝐸)
βˆ’ (𝐼 ∘ 𝐸)
L’opération Top-Hat, qui est un résidu d’ouverture, permet
d’extraire le fond d’une image afin de soustraire les effets
d’un gradient d’éclairage.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
52
Chapitre
4
Filtres par reconstruction
Chapitre
4
Section
Reconstruction inférieure et
ouverture par reconstruction
1
RECONSTRUCTION INFÉRIEURE
Comme en binaire, on va procéder par étapes. Tout d’abord, nous
définissons la dilatation conditionnelle, où l’intersection est
remplacée par le minimum :
Soient 𝐼, 𝑀: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 , et soit 𝐸 βŠ‚ ℀𝑛 , la dilatation
conditionnelle de M par E restreinte à I est
𝑀 βŠ•πΌ 𝐸 = 𝑀 βŠ• 𝐸 ∧ 𝐼
E
𝑀
MβŠ•πΈ ∧𝐼
I
Décembre 2012
LAGA – Institut Galilée – Paris XIII
55
RECONSTRUCTION INFÉRIEURE
On peut itérer la dilatation conditionnelle :
Soient 𝐼, 𝑀: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, et soit 𝐸 βŠ‚ ℀𝑛 , on notera
(𝑀 βŠ•πΌ 𝐸)𝑛 = (( 𝑀 βŠ•πΌ 𝐸 βŠ•πΌ 𝐸) … βŠ•πΌ 𝐸) (n fois)
Ce qui nous amène à la reconstruction inférieure :
La reconstruction inférieure de M par E restreinte à I est
𝐼 βˆ†πΈ 𝑀 = (𝑀 βŠ•πΌ 𝐸)∞
(répétition de la dilatation conditionnelle jusqu’à stabilité).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
56
RECONSTRUCTION INFÉRIEURE
Exemple 1d :
I
E
𝐼 βˆ†πΈ 𝑀
M
Décembre 2012
LAGA – Institut Galilée – Paris XIII
57
RECONSTRUCTION INFÉRIEURE
Exemple 2d :
𝐼 βˆ†Ξ“M4 𝑀
I
Décembre 2012
LAGA – Institut Galilée – Paris XIII
58
RECONSTRUCTION INFÉRIEURE
Exemple 2d :
La valeur de ce pixel P est 85.
Imaginons que I soit un relief montagneux où
vous vous promenez.
Vous partez des points de M, et vous voulez aller
vers P en descendant le moins possible
d’altitude.
I
Dans le meilleur des cas, vous devrez
nécessairement descendre à l’altitude 85 pour
rejoindre P.
𝐼 βˆ† Ξ“4 𝑀
Décembre 2012
LAGA – Institut Galilée – Paris XIII
59
RECONSTRUCTION INFÉRIEURE
Que se passe-t-il si on ajoute un chemin « haut » entre M et P
?
𝐼 βˆ†Ξ“M4 𝑀
I
Le chemin haut permet à l’algorithme de faire un détour pour atteindre certains pixels
de l’image : la reconstruction possède des zones plus claires.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
60
RECONSTRUCTION INFÉRIEURE
Que se passe-t-il si on « creuse » le relief à certains endroits ?
I’
I
Décembre 2012
En creusant le relief,
on force l’algorithme à
devoir descendre plus
bas pour accéder à
certains pixels : la
reconstruction
possède des zones
𝐼 βˆ†plus
𝐸 𝑀 foncées.
LAGA – Institut Galilée – Paris XIII
𝐼′ βˆ†Ξ“4 𝑀
61
L’OUVERTURE PAR RECONSTRUCTION
L’ouverture par reconstruction consiste à réaliser une ouverture, puis
une reconstruction de l’image de départ à partir de son ouvert :
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 , et soient 𝐸, 𝐹 βŠ‚ ℀𝑛 , l’ouverture par
reconstruction (sous F) de I par E est
𝐼 ∘𝐹 𝐸 = 𝐼 βˆ†πΉ 𝐼 ∘ 𝐸
Généralement, F (utilisé pour la reconstruction) sera un élément
structurant de voisinage (Ξ“4 , Ξ“8 , …).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
62
L’OUVERTURE PAR RECONSTRUCTION
Exemple 1d :
F
E
I
𝐼 ∘ 𝐸 = 𝐼 ∘ Ξ“4 𝐸
En 1d, la reconstruction après l’ouverture ne sert à rien…
Décembre 2012
LAGA – Institut Galilée – Paris XIII
63
L’OUVERTURE PAR RECONSTRUCTION
Exemple 2d :
E
I
𝐼∘𝐸
𝐼 ∘ Ξ“4 𝐸
Décembre 2012
LAGA – Institut Galilée – Paris XIII
64
L’OUVERTURE PAR RECONSTRUCTION
Exemple 2d :
Im = imread('pills.png');
El = strel('square', 5);
Op = imopen(Im, El);
R = imreconstruct(Op, Im);
πΌπ‘š
πΌπ‘š ∘ 2Ξ“8
Décembre 2012
πΌπ‘š βˆ˜Ξ“4 2Ξ“8
LAGA – Institut Galilée – Paris XIII
65
Chapitre
4
Section
Reconstruction supérieure et
fermeture par reconstruction
2
RECONSTRUCTION SUPÉRIEURE
Nous procédons comme dans la section précédente :
Soient 𝐼, 𝑀: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, et soit 𝐸 βŠ‚ ℀𝑛 ,
l’érosion conditionnelle de M par E restreinte à I est
𝑀 βŠ–πΌ 𝐸 = 𝑀 βŠ– 𝐸 ∨ 𝐼
Décembre 2012
LAGA – Institut Galilée – Paris XIII
67
RECONSTRUCTION SUPÉRIEURE
On peut itérer l’érosion conditionnelle :
Soient 𝐼, 𝑀: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, et soit 𝐸 βŠ‚ ℀𝑛 , on notera
(𝑀 βŠ–πΌ 𝐸)𝑛 = (( 𝑀 βŠ–πΌ 𝐸 βŠ–πΌ 𝐸) … βŠ–πΌ 𝐸) (n fois)
Ce qui nous amène à la reconstruction supérieure :
La reconstruction supérieure de M par E restreinte à I est
𝐼 𝛻𝐸 𝑀 = (𝑀 βŠ–πΌ 𝐸)∞
(répétition de l’érosion conditionnelle jusqu’à stabilité).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
68
RECONSTRUCTION SUPÉRIEURE
Exemple 1d :
I
E
𝐼 𝛻𝐸 𝑀
M
Décembre 2012
LAGA – Institut Galilée – Paris XIII
69
RECONSTRUCTION SUPÉRIEURE
Exemple 2d :
𝐼 𝛻ΓM4 𝑀
I
Cette technique permet de boucher les trous de l’image
Décembre 2012
LAGA – Institut Galilée – Paris XIII
70
RECONSTRUCTION SUPÉRIEURE
Exemple 2d :
La valeur de ce pixel P est 217.
Imaginons que I soit un relief montagneux où
vous vous promenez.
Vous partez des points de M (ici, ce sont les
points à 0 de M qui nous intéressent, donc les
points du bord de l’image), et vous voulez aller
vers P en montant le moins possible en altitude.
I
Dans le meilleur des cas, vous devrez
nécessairement monter au moins à l’altitude 217
pour rejoindre P.
𝐼 𝛻Γ4 𝑀
Décembre 2012
LAGA – Institut Galilée – Paris XIII
71
RECONSTRUCTION INFÉRIEURE
Que se passe-t-il si on creuse un peu entre M et P ?
𝐼 βˆ†Ξ“M4 𝑀
I
Ca ne change pas beaucoup le résultat, car il faudra toujours monter aussi haut pour
atteindre le pixel P.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
72
RECONSTRUCTION INFÉRIEURE
Que se passe-t-il si on construit une chaîne de montagnes
autour de P ?
𝐼 βˆ†Ξ“M4 𝑀
I
Pour aller de M à P, il faudra monter plus haut : toute la zone entourée par les
montagnes devient blanche.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
73
RECONSTRUCTION INFÉRIEURE
Que se passe-t-il si on construit une tranchée pour aller à P ?
𝐼 βˆ†Ξ“M4 𝑀
I
Pour aller de M à P, on peut trouver un chemin (plus long) qui reste bas : on peut
atteindre P en montant moins en altitude. La valeur de P dans l’image reconstruite est
plus basse.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
74
LA FERMETURE PAR RECONSTRUCTION
La fermeture par reconstruction consiste à réaliser une fermeture, puis
une reconstruction de l’image de départ à partir de son fermé :
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, et soient 𝐸, 𝐹 βŠ‚ ℀𝑛 , la fermeture par
reconstruction (sous F) de I par E est
𝐼⦁𝐹 𝐸 = 𝐼 𝛻𝐹 𝐼⦁𝐸
Généralement, F (utilisé pour la reconstruction) sera un élément
structurant de voisinage (Ξ“4 , Ξ“8 , …).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
75
LA FERMETURE PAR RECONSTRUCTION
Exemple 2d :
Im = imread('pills.png');
El = strel('square', 5);
Cl = imclose(Im, El);
R = imreconstruct(255-Cl, 255-Im);
R = 255-R;
πΌπ‘š
πΌπ‘šβ¦2Ξ“8
Décembre 2012
πΌπ‘šβ¦Ξ“4 2Ξ“8
LAGA – Institut Galilée – Paris XIII
76
Chapitre
4
Section
Propriétés des filtres par
reconstruction
3
PROPRIÉTÉS
DES FILTRES PAR RECONSTRUCTION
Dans une image en niveau de gris, une zone plate est une composante
connexe de pixels ayant le même niveau de gris.
Ex : Décomposer cette image en zones plates (en considérant la 8connexité) (chaque zone plate possède une couleur différente).
Décembre 2012
2
3
5
2
3
2
3
5
2
3
2
2
2
1
3
2
1
1
1
3
4
1
1
4
4
I
Zones plates de I
LAGA – Institut Galilée – Paris XIII
78
PROPRIÉTÉS
DES FILTRES PAR RECONSTRUCTION
A une image en niveau de gris, on associe comme
partitionnement naturel sa décomposition en zones plates.
Tous les filtres par reconstruction sont des filtres
connexes : ils fusionnent des zones plates.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
79
PROPRIÉTÉS
DES FILTRES PAR RECONSTRUCTION
Les filtres par reconstruction possèdent aussi une propriété de
croissance vis-à-vis de l’élément structurant et de la partition :
plus l’élément structurant utilisé est grand, et plus des
zones plates de l’image auront été fusionnées.
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, soient 𝐸, 𝐹 βŠ‚ ℀𝑛 , et soit 𝛹 un filtre par
reconstruction dépendant d’une image et d’un élément
structurant.
Si 𝐸 βŠ† 𝐹, alors 𝑃(Ξ¨ 𝐼, 𝐸 ) est plus fine que 𝑃(Ξ¨ 𝐼, 𝐹 ).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
80
PROPRIÉTÉS
DES FILTRES PAR RECONSTRUCTION
Ouverture par reconstruction : taille de l’élément struct. et
zones plates
𝐼
53218 zones plates
Décembre 2012
𝐼 βˆ˜Ξ“4 12Ξ“8
39223 zones plates
𝐼 βˆ˜Ξ“4 25Ξ“8
28008 zones plates
LAGA – Institut Galilée – Paris XIII
𝐼 βˆ˜Ξ“4 50Ξ“8
14034 zones plates
81
Chapitre
5
Filtres avancés
Chapitre
5
Section
ASF en niveau de gris
1
ASF EN NIVEAU DE GRIS
Comme en binaire, les ASF en niveau de gris sont une
séquence d’ouvertures et de fermetures.
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ† ℀𝑛 ,
𝑛
π΄π‘†πΉπ‘œπ‘“,𝐸
𝐼 = ((((((𝐼 ∘ 𝐸) β€’ 𝐸) ∘ 2𝐸) β€’ 2𝐸) … ∘ 𝑛𝐸) β€’ 𝑛𝐸)
𝑛
π΄π‘†πΉπ‘“π‘œ,𝐸
𝐼 = ((((((𝐼 β€’ 𝐸) ∘ 𝐸) β€’ 2𝐸) ∘ 2𝐸) … β€’ 𝑛𝐸) ∘ 𝑛𝐸)
Ces transformations sont généralement indiquées dans le cas
de présence de bruit additif et soustractif.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
84
ASF EN NIVEAU DE GRIS
Exemple : retirer du bruit avec seulement un ouverture et une
Im = imread('chien_bruit.png');
fermeture
Im = imopen(Im, strel('diamond', 2));
Im = imclose(Im, strel('diamond', 15));
πΌπ‘š
(πΌπ‘š
πΌπ‘š ∘∘ 2Ξ“
2Ξ“44 ) β€’ 15Ξ“4
Décembre 2012
LAGA – Institut Galilée – Paris XIII
85
ASF EN NIVEAU DE GRIS
Im = imread('chien_bruit.png');
Exemple : retirer du bruit avec une ASF
for i=1:2
El = strel('diamond', i);
Im = imopen(Im,El);
Im = imclose(Im,El);
end
El = strel('diamond', 11);
Im = imclose(Im,El);
πΌπ‘š
(πΌπ‘š ∘ 2Ξ“4 ) β€’ 15Ξ“4
1
2Ξ“
πΌπ‘š βˆ˜π‘œπ‘“,Ξ“
∘ 11Ξ“
2Ξ“4 4
𝐴𝑆𝐹
4 4 πΌπ‘š β€’
Décembre 2012
LAGA – Institut Galilée – Paris XIII
86
ASF PAR RECONSTRUCTION
Les ASF par reconstruction permettent de « simplifier » une
image en diminuant le nombre de zones plates.
Soit 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ† ℀𝑛 ,
𝑛
π΄π‘†πΉπ‘œπ‘“,𝐸,𝐹
𝐼 = ((((( 𝐼 ∘𝐹 𝐸 ‒𝐹 𝐸) ∘𝐹 2𝐸) ‒𝐹 2𝐸) … ∘𝐹 𝑛𝐸) ‒𝐹 𝑛𝐸)
𝑛
π΄π‘†πΉπ‘“π‘œ,𝐸,𝐹
𝐼 = ((((( 𝐼 ‒𝐹 𝐸 ∘𝐹 𝐸) ‒𝐹 2𝐸) ∘𝐹 2𝐸) … ‒𝐹 𝑛𝐸) ∘𝐹 𝑛𝐸)
Comme on utilise une ASF et des reconstructions, l’action
fusionne des petites montagnes (ouverture par recons.) et des
petites vallées (fermeture par recons.), puis continue en
s’attaquant à des structures plus grandes.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
87
ASF EN NIVEAU DE GRIS
Exemple : retirer du bruit avec une ASF par reconstruction
Im = imread('chien_bruit.png');
for i=1:2
El = strel('diamond', i);
M = imopen(Im,El);
Im = imreconstruct(M,Im,4);
M = imclose(Im,El);
Im = imreconstruct(255-M,255-Im,4);
πΌπ‘š
Im = 255-Im;
end
Im = imopen(Im, strel('diamond', 2));
2
π΄π‘†πΉπ‘œπ‘“,Ξ“
πΌπ‘š β€’ 11Ξ“4
4
Im = imclose(Im, strel('diamond', 4));
2
π΄π‘†πΉπ‘œπ‘“,Ξ“
πΌπ‘š ∘ 2Ξ“4 β€’ 4Ξ“4
4 ,Ξ“4
Décembre 2012
LAGA – Institut Galilée – Paris XIII
88
ASF PAR RECONSTRUCTION
Les ASF par reconstruction fusionnent les zones plates d’une image
de façon plus efficace qu’une simple ouverture ou fermeture par
reconstruction.
𝐼
5
π΄π‘†πΉπ‘œπ‘“,Ξ“
𝐼
8 ,Ξ“8
53218 zones plates
30838 zones plates
17
π΄π‘†πΉπ‘œπ‘“,Ξ“
𝐼
8 ,Ξ“8
18011 zones plates
40
π΄π‘†πΉπ‘œπ‘“,Ξ“
𝐼
8 ,Ξ“8
7299 zones plates
Chapitre
5
Section
2
H-extrema et extrema régionaux
H-EXTREMA
Le but des h-extrema est de supprimer des montagnes (ou des vallées)
dont la hauteur (ou profondeur) est inférieure à h. C’est un filtre basé
non pas sur la taille des éléments (largeur), mais sur leur hauteur.
Commençons par les h-maxima : comment supprimer, dans le signal
1d ci-dessous, les montagnes de hauteur inférieure à 30 ?
E
30
𝐼
𝐼-30
𝐼 βˆ†πΈ (𝐼 βˆ’ 30)
Décembre 2012
LAGA – Institut Galilée – Paris XIII
91
H-EXTREMA
On peut définir la transformation h-maxima :
Soient 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, 𝐸 βŠ‚ ℀𝑛 et β„Ž ∈ 𝐡, le h-maxima de I
(sous E) est
π»π‘€π΄π‘‹β„Ž,𝐸 𝐼 = 𝐼 Δ𝐸 (𝐼 βˆ’ β„Ž)
Le h-minima se définit de la même manière :
Soient 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡, 𝐸 βŠ‚ ℀𝑛 et β„Ž ∈ 𝐡, le h-minima de I
(sous E) est
π»π‘€πΌπ‘β„Ž,𝐸 𝐼 = 𝐼 𝛻𝐸 (𝐼 + β„Ž)
Décembre 2012
LAGA – Institut Galilée – Paris XIII
92
H-EXTREMA
Exemple : retirer du bruit
πΌπ‘š
𝐻𝑀𝐴𝑋30,Ξ“8 πΌπ‘š
𝐻𝑀𝐴𝑋50,Ξ“8 πΌπ‘š
On peut retirer du bruit avec cette transformation : elle détruit les montagnes trop
basses (le bruit) mais abaisse aussi le niveau des autres montagnes (perte de
contraste).
L’intérêt de cette transformation réside dans les extremas régionaux…
Décembre 2012
LAGA – Institut Galilée – Paris XIII
93
EXTREMA RÉGIONAUX
Un maximum (minimum) régional est une zone plate qui n’est
pas adjacente à une zone plate de plus haute (basse) altitude.
Ex :
Décembre 2012
LAGA – Institut Galilée – Paris XIII
94
EXTREMA RÉGIONAUX
Comment obtenir les maxima régionaux ?
Un maximum régional est une zone plate qui n’est pas
adjacente à une zone plate de plus haute altitude -> c’est donc
le sommet d’une montagne de l’image.
Une transformation h-max, avec h=1, supprimera tous les
sommets de toutes les montagnes.
Le résidu d’une telle transformation permettra de récupérer
les sommets des montagnes, donc les maxima régionaux.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
95
EXTREMA RÉGIONAUX
E
πΌπ‘š
𝐻𝑀𝐴𝑋1,𝐸 (πΌπ‘š)
πΌπ‘š
𝐻𝑀𝐴𝑋1,𝐸 (πΌπ‘š)
πΌπ‘š βˆ’ 𝐻𝑀𝐴𝑋1,𝐸 (πΌπ‘š)
Décembre 2012
LAGA – Institut Galilée – Paris XIII
96
EXTREMA RÉGIONAUX
On peut définir la transformation de maximum et minimum
régional :
Soient 𝐼: 𝐴 βŠ‚ ℀𝑛 β†’ 𝐡 et 𝐸 βŠ‚ ℀𝑛 ,
𝑅𝑀𝐴𝑋𝐸 𝐼 = 𝐼 βˆ’ 𝐻𝑀𝐴𝑋1,𝐸 (𝐼) (maximum régional)
𝑅𝑀𝐼𝑁𝐸 𝐼 = 𝐻𝑀𝐼𝑁1,𝐸 𝐼 βˆ’ 𝐼 (minimum régional)
Décembre 2012
LAGA – Institut Galilée – Paris XIII
97
EXTREMA RÉGIONAUX : APPLICATIONS
Les extrema régionaux des h-maxima (ou minima) permettent
de récupérer des objets d’intérêt dans une image…
πΌπ‘š
Pourquoi des tâches blanches apparaissent ?
Décembre 2012
Extrema régionaux de
π»π‘€π΄π‘‹β„Ž,Ξ“8 πΌπ‘š
avec h variant de 0 à 30
LAGA – Institut Galilée – Paris XIII
98
EXTREMA RÉGIONAUX : APPLICATIONS
E
πΌπ‘š
A h=30, on identifie trois extremas régionaux intéressants…
𝐻𝑀𝐴𝑋30,𝐸 πΌπ‘š
𝑅𝑀𝐴𝑋𝐸 (𝐻𝑀𝐴𝑋30,𝐸 πΌπ‘š )
πΌπ‘š
A h=90, on identifie deux extremas régionaux trop larges
𝐻𝑀𝐴𝑋90,𝐸 πΌπ‘š
𝑅𝑀𝐴𝑋𝐸 (𝐻𝑀𝐴𝑋90,𝐸 πΌπ‘š )
EXTREMA RÉGIONAUX : APPLICATIONS
Au fur et à mesure que h augmente, on coupe de plus en plus
les montagnes de l’image. Certains maximas régionaux
deviennent plus larges.
Cependant, à la limite de la disparition, ces maximas peuvent
aussi se fusionner avec des zones plates de l’image (qui
n’étaient pas intéressantes), donnant ces tâches blanches qui
apparaissent parfois.
Conclusion : faire croître le paramètre h permet de supprimer
des maximas régionaux insignifiants, mais rend certains
maximas régionaux trop larges dans le résultat.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
100
EXTREMA RÉGIONAUX : APPLICATIONS
Pour résoudre ce problème, on peut additionner les maximaux
régionaux des différents h-maxima obtenus, et seuiller le
résultat…
51
πΌπ‘š
𝑅=
Décembre 2012
β„Ž=0
Seuil de 𝑅 à 15
𝑅𝑀𝐴𝑋Γ8 (𝐻𝑀𝐴𝑋h,Ξ“8 πΌπ‘š )
101
Chapitre
5
Section
La ligne de partage des eaux
3
LA LIGNE DE PARTAGE DES EAUX
La ligne de partage (watershed en anglais) des eaux consiste,
à partir de marqueurs M représentant des lacs, et d’un relief R,
à faire monter le niveau de l’eau et de trouver les endroits W où
les lacs se rejoignent.
W
R
M
Décembre 2012
LAGA – Institut Galilée – Paris XIII
103
LA LIGNE DE PARTAGE DES EAUX
On souhaite extraire les frontières des cellules
Les lacs de départ (traits de couleur) repèrent les cellules et le fond de l’image. Le
relief de propagation est le gradient de l’image (la frontière souhaitée est alors
une montagne, non pas un escarpement).
Décembre 2012
LAGA – Institut Galilée – Paris XIII
104
LA LIGNE DE PARTAGE DES EAUX
Im = imread('cell.png');
M = imread('marker.png');
El = strel('square', 7);
Relief = imdilate(Im, El) - Im;
πΌπ‘š
𝑀
%On doit forcer les lacs de départ (les
points blancs de M) à être les seuls
minimaux régionaux de Relief
%On
procède
à
une
reconstruction
supérieure de Relief à partir de M
%C’est à cause de la ligne de partage des
eaux, bizarrement implémentée dans Matlab
Relief = 255- Relief;
Relief = imreconstruct(M, max(Relief ,M));
Relief = 255- Relief;
S = watershed(Relief);
𝑅𝑒𝑙𝑖𝑒𝑓
Décembre 2012
𝑆
LAGA – Institut Galilée – Paris XIII
105
LA LIGNE DE PARTAGE DES EAUX
En conclusion, la ligne de partage des eaux permet de
segmenter (trouver les frontières) d’objets dans une image.
La fonction de relief est souvent le gradient de l’image.
La tâche difficile consiste à trouver de bons marqueurs pour les
objets (par trop, pas trop peu, pour obtenir les bonnes
frontières). Il faut bien analyser le problème, et utiliser les outils
de morphologie vu précédemment.
Décembre 2012
LAGA – Institut Galilée – Paris XIII
106