Traitement d`images niveau de gris

Download Report

Transcript Traitement d`images 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) }
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
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
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
__________________________________________________
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
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
__________________________________________________
210 246 283 281 292
_____
186 231 346 450 417
179 189 312 475 400
6
INTRODUCTION
Les
images
couleur
____________________________________
sont
Canal bleu
__________________________________________________
51 51 53 54 60 57
______
15
89
53
30
44
53
55
58
91 23
95 3499 4710261 9861 60
70 65
86 6195 639768 9967 65
101 1036110774 110
89 114
101 107
102 101
65
82100 9899 107
103 109
107 108
106 104 Canal vert
73
86 101 113 111 110
113 111 115 116 115 113
Canal rouge
7
INTRODUCTION
Les
images
HDR
__________________________
sont
généralement
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
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.
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 :
_________________________________
10
PLAN
Erosion et dilatation en niveau
de gris
Erosion
Filtres par reconstruction
Reconstruction supérieure
Reconstruction inférieure
Dilatation
Filtres avancés
Ouverture et fermeture en niveau
ASF
de gris
H-extrema et maxima régionaux
Ouverture
Ligne de partage des eaux
Fermeture
11
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:
Quelle « formule » a-t-on appliqué pour calculer
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
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
la valeur de ces deux pixels ?
____________________________________
__
____________________________________
__
I
๐ผโŠ–๐ธ
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).
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
80
77
80
84
79
78
82
82
84
80
83
84
91
92
94
96
93
96
102 100 103 103 110 112
100 110 109 112 110 115 I
๐ผโŠ–๐ธ
16
Lโ€™ÉROSION
Ex : Calculer ๐ผ โŠ– ๐ธ
1
0
0
0
1
1
0
0
1
E
82
76
81
81
81
75
80
77
80
84
79
78
82
82
84
80
83
84
91
92
94
96
93
96
EN NIVEAU DE GRIS
!!
______________________
__
______________________
______________________
______________________
_________
102 100 103 103 110 112
100 110 109 112 110 115 I
๐ผโŠ–๐ธ
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
________
__________
18
Lโ€™ÉROSION
EN NIVEAU DE GRIS
E
I
๐ผโŠ–๐ธ
I = imread('image_ex1.png');
E = strel(โ€˜disk',14,0);
Erod = imerode(I, E);
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
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
Quelle « formule » a-t-on appliqué pour calculer la
valeur de ces deux pixels ?
________________________________________
________________________________________
__________
I
๐ผโŠ•๐ธ
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).
22
LA
DILATATION EN NIVEAU DE GRIS
Ex : Calculer ๐ผ โŠ• ๐ธ
0
1
0
0
1
1
0
1
1
๐ธ
E
82
76
81
81
81
75
80
77
80
84
79
78
82
82
84
80
83
84
91
92
94
96
93
96
102 100 103 103 110 112
100 110 109 112 110 115 I
๐ผโŠ•๐ธ
23
LA
DILATATION EN NIVEAU DE GRIS
Ex : Calculer ๐ผ โŠ• ๐ธ
0
0
1
0
0
1
0
0
1
E
82
76
81
81
81
75
80
77
80
84
79
78
82
82
84
80
83
84
91
92
94
96
93
96
______________________
______________________
______________________
______________________
____________
102 100 103 103 110 112
100 110 109 112 110 115 I
๐ผโŠ•๐ธ
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
__________
_______
25
LA
DILATATION EN NIVEAU DE GRIS
E
I
๐ผโŠ•๐ธ
I = imread('image_ex1.png');
E = strel(โ€˜disk',14,0);
Dil = imdilate(I, E);
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.
28
EROSION
ET DILATATION
:
PROPRIÉTÉS
On définira aussi le maximum et le minimum de deux images :
Soient deux images ๐ผ, ๐ฝ: ๐ด โŠ‚ โ„ค๐‘› โ†’ ๐ต, โˆ€๐‘ฅ โˆˆ ๐ด
๐ผ โˆจ ๐ฝ ๐‘ฅ = ๐‘€๐‘Ž๐‘ฅ ๐ผ ๐‘ฅ , ๐ฝ ๐‘ฅ
๐ผ โˆง ๐ฝ ๐‘ฅ = ๐‘€๐‘–๐‘›(๐ผ ๐‘ฅ , ๐ฝ ๐‘ฅ )
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.
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
๐ผ โŠ• ๐ธ ๐‘ฅ =________________
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 ๐ธ, ๐น โŠ‚ โ„ค๐‘› ,
๐ผ โŠ• ๐ธ โˆจ ๐น =_____________
๐ผ โŠ– ๐ธ โˆจ ๐น =_____________
Rappel :
Ici, I est une image en niveau de gris ndimensionnelle,
E et F sont des éléments structurant n-
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.
34
EROSION ET DILATATION : CONCLUSION &
APPLICATIONS
E est un disque euclidien de rayon 20.
I
_______
________
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
___________
____________
_______________
36
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
๐ผโˆ˜๐ธ = ๐ผโŠ–๐ธ โŠ•๐ธ
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 à
_______________
_____________________________________
_
I = imread('line.png');
E = strel('line',27,0);
Op = imopen(I, E);
E
______
________
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);
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
๐ผโฆ๐ธ = ๐ผ โŠ• ๐ธ โŠ– ๐ธ
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 à
______________
_____________________________________
__
I = imread('line.png');
E = strel('line',27,0);
Cl = imclose(I, E);
E
_______
_______
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);
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.
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.
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 »
_______
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 !
51
CAS
PRATIQUE
:
TOP HAT
Solution : utiliser une ouverture pour extraire le fond de lโ€™image
๐ผโˆ˜๐ธ
๐ผ
๐ธ
Lโ€™opération Top-Hat,
_______________
__________
qui
est
un
Seuil à 50 de __________
résidu
dโ€™ouverture,
__________________________________________________
___
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
๐‘€โŠ•๐ธ โˆง๐ผ
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é).
56
RECONSTRUCTION
Exemple 1d :
INFÉRIEURE
I
E
๐ผ โˆ†๐ธ ๐‘€
M
57
RECONSTRUCTION
Exemple 2d :
INFÉRIEURE
M
I
_________
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.
I
๐ผ โˆ†ฮ“4 ๐‘€
Vous partez des points de M, et vous
voulez aller vers P en descendant le
moins possible dโ€™altitude.
Dans le meilleur des cas, vous
devrez nécessairement descendre à
lโ€™altitude 85 pour rejoindre P.
59
RECONSTRUCTION
INFÉRIEURE
Que se passe-t-il si on ajoute un chemin « haut » entre M et P
?
I
๐ผ โˆ†ฮ“4 ๐‘€
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.
60
RECONSTRUCTION
INFÉRIEURE
Que se passe-t-il si on « creuse » le relief à certains endroits ?
I
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.
Iโ€™
๐ผโ€ฒ โˆ†ฮ“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 , โ€ฆ).
62
Lโ€™OUVERTURE
PAR RECONSTRUCTION
Exemple 1d :
F
E
I
๐ผ โˆ˜ ๐ธ = ๐ผ โˆ˜ฮ“4 ๐ธ
En 1d, la reconstruction après lโ€™ouverture ne sert à rienโ€ฆ
63
Lโ€™OUVERTURE
Exemple 2d :
PAR RECONSTRUCTION
E
๐ผ โˆ˜ฮ“4 ๐ธ
I
๐ผโˆ˜๐ธ
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
๐ผ๐‘š โˆ˜ฮ“4 2ฮ“8
65
Chapitre
4
RECONSTRUCTION
Section
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
๐‘€ โŠ–๐ผ ๐ธ = ๐‘€ โŠ– ๐ธ โˆจ ๐ผ
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é).
68
RECONSTRUCTION
Exemple 1d :
I
SUPÉRIEURE
E
M
๐ผ ๐›ป๐ธ ๐‘€
69
RECONSTRUCTION
SUPÉRIEURE
Exemple 2d :
M
I
๐ผ ๐›ปฮ“4 ๐‘€
Cette technique permet de ________________________
70
RECONSTRUCTION
Exemple 2d :
SUPÉRIEURE
La valeur de ce pixel P est 217.
Imaginons que I soit un relief
montagneux où vous vous
promenez.
I
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.
๐ผ ๐›ปฮ“4 ๐‘€ Dans le meilleur des cas, vous
71
RECONSTRUCTION
INFÉRIEURE
Que se passe-t-il si on creuse un peu entre M et P ?
I
๐ผ โˆ†ฮ“4 ๐‘€
Ca ne change pas beaucoup le résultat, car il faudra toujours
monter aussi haut pour atteindre le pixel P.
72
RECONSTRUCTION
INFÉRIEURE
Que se passe-t-il si on construit une chaîne de montagnes
autour de P ?
I
๐ผ โˆ†ฮ“4 ๐‘€
Pour aller de M à P, il faudra monter plus haut :
__________________
________________________________________________
73
RECONSTRUCTION
INFÉRIEURE
Que se passe-t-il si on construit une tranchée pour aller à P ?
I
๐ผ โˆ†ฮ“4 ๐‘€
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.
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 , โ€ฆ).
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
๐ผ๐‘šโฆฮ“4 2ฮ“8
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 lettre différente).
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
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
___________: ils fusionnent des zones plates.
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 ๐‘ƒ(ฮจ ๐ผ, ๐ธ ) ______________________๐‘ƒ(ฮจ ๐ผ, ๐น ).
80
PROPRIÉTÉS DES FILTRES PAR
RECONSTRUCTION
Ouverture par reconstruction : taille de lโ€™élément struct. et
zones plates
๐ผ
๐ผ โˆ˜ฮ“4 12ฮ“8
๐ผ โˆ˜ฮ“4 25ฮ“8
๐ผ โˆ˜ฮ“4 50ฮ“8
53218 zones plates 39223 zones plates 28008 zones plates 14034 zones plat
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.
84
ASF
EN NIVEAU DE GRIS
Exemple : retirer du bruit avec seulement un ouverture et une
fermeture
Im = imread('chien_bruit.png');
Im =
2));
imopen(Im,
strel('diamond',
Im = imclose(Im, strel('diamond',
15));
๐ผ๐‘š
(๐ผ๐‘š โˆ˜ 2ฮ“4 ) โ€ข 15ฮ“4
85
ASF
EN NIVEAU DE GRIS
Im =
Exemple : retirer du bruit avec une ASF
imread('chien_bruit.png');
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);
__________________________
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.
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
Im,4);
=
imreconstruct(255-M,255-
Im = 255-Im;
end
Im =
2));
2
๐ด๐‘†๐น๐‘œ๐‘“,ฮ“
4 ,ฮ“4
๐ผ๐‘š โˆ˜ 2ฮ“4 โ€ข 4ฮ“4
imopen(Im,
strel('diamond',
Im = imclose(Im, strel('diamond',
4));
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.
๐ผ
53218 zones plates
5
๐ด๐‘†๐น๐‘œ๐‘“,ฮ“
๐ผ
8 ,ฮ“8
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
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
_________________________________________
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
93
EXTREMA
RÉGIONAUX
Un
maximum
(minimum)
_____________________
régional
est
une
__________________________________________________
_____.
Ex :
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.
95
EXTREMA
E
RÉGIONAUX
๐ผ๐‘š
๐ป๐‘€๐ด๐‘‹1,๐ธ (๐ผ๐‘š)
๐ผ๐‘š
๐ป๐‘€๐ด๐‘‹1,๐ธ (๐ผ๐‘š)
๐ผ๐‘š โˆ’ ๐ป๐‘€๐ด๐‘‹1,๐ธ (๐ผ๐‘š)
96
EXTREMA
RÉGIONAUX
On peut définir la transformation de maximum et minimum
régional :
Soient ๐ผ: ๐ด โŠ‚ โ„ค๐‘› โ†’ ๐ต et ๐ธ โŠ‚ โ„ค๐‘› ,
_____________________________ (maximum
régional)
____________________________ (minimum régional)
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โ€ฆ
๐‘…๐‘€๐ด๐‘‹ฮ“8 (๐ป๐‘€๐ด๐‘‹20,ฮ“8 ๐ผ๐‘š )
๐ผ๐‘š
Pourquoi des tâches blanches apparaissent ?
๐‘…๐‘€๐ด๐‘‹ฮ“8 (๐ป๐‘€๐ด๐‘‹30,ฮ“8 ๐ผ๐‘š )
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.
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โ€ฆ
๐ผ๐‘š
Seuil de ๐‘… à 15
๐‘… = ______________________________________
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
103
LA
LIGNE DE PARTAGE DES EAUX
On souhaite extraire les frontières des cellules
Les lacs de départ (traits blancs) 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).
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 à
ê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);
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.
106