Traitement d’images
Chapitre 4: Morphologie mathématique
Master Big Data et Intelligence Artificielle
Pr Y. ES-SAADY
[Link]@[Link]
2024/2025
Vu Pham
Modèles fondamentaux en TI
Modèle statistique (histogramme, entropie ...)
Modèle linéaire (convolution)
Modèle fréquentiel (fourrier ...)
Modèle différentiel (gradient, EDP ...)
Modèle ensembliste (morphologie ...)
2
Morphologie Mathématique:
Introduction
La morphologie mathématique a pris naissance en 1964 à
l'école des Mines de Fontainebleau, sous l'impulsion de
Georges Matheron et Jean Serra.
Cette méthode peut être utilisée pour:
– L'amélioration , La segmentation , La reconnaissance, …
Elle est utilisée dans de nombreux domaines :
Cartographie, Géologie, Biologie, Médecine, Robotique....
Contrairement au traitement linéaire des images, la
morphologie mathématique ne s’appuie pas sur le
traitement du signal, mais repose sur la théorie des
ensembles.
3
Morphologie Mathématique:
Introduction
4
Morphologie Mathématique:
Introduction
La morphologie mathématique formalise une "description
des formes" dans un cadre mathématique basé sur la
théorie ensembliste,
Nous pouvons "comparer" des objets que nous désirons
analyser avec un autre objet de forme connue appelé
élément structurant, et ainsi dégager des
caractéristiques formelles et structurelles,
L'opération morphologique apparaît souvent comme
l'application d'une séquence spécifique de
transformation de voisinage.
5
Morphologie Mathématique:
Introduction
Les ensembles en morphologie mathématique
représentent les objets (formes) dans les images
L’ensemble des pixels noirs dans une image binaire sont
regroupé dans un espace 2-D entier Z2 où chaque
élément (pixel) est la coordonnée (x,y)
Les images en niveaux de gris peuvent être représentées
par des ensembles dans un espace Z3 dont deux
composantes font référence aux coordonnées de chaque
pixel et une troisième sa valeur de niveau de gris
6
Élément structurant
Structure élémentaire qui va servir à
analyser localement, par comparaison,
les formes d’intérêt,
On appelle élément structurant
l'ensemble de points dont la
distribution spatiale dessine une forme
géométrique simple.
Choix de sa forme et de sa taille, en
général
– Symétrique,
– Connexe,
– Convexe
– …
7
Opérations morphologiques
sur les images
Transformations de base
– Dilatation
– Érosion
Transformations complémentaires
– Ouverture
– Fermeture
8
Dilatation binaire
A, I et E des ensembles de Z2 tels que I est inclus dans A
Ez est un élément structurant. Il admet un centre z
On déplace Ez de telle sorte que son centre occupe tous
les points de A et on pose la question:
L'élément structurant E situé en z touche t-il l'ensemble I ?.
Tout les points z ayant une réponse positive forment un nouvel
ensemble dit dilatation de I par E
La dilatation d’un ensemble A par un élément structurant
Ez est définie comme l’union des éléments structurants
dont l’origine est déplacée à l’intérieur de A
I E DE(I) z A/Ez I
9
Dilatation binaire
Pour un élément ayant la forme
d'un disque, cette opération a
pour effet de déplacer de la
frontière de l'objet vers
l'extérieur d'une distance égale
au rayon du disque.
10
Dilatation binaire
Pour dilater une image il suffit de mettre à 1 la valeur
du pixel à chaque fois que l'élément structurant centré
sur ce pixel touche le bord de l'objet,
Pratiquement, pour construire l'image dilatée par un
élément 3x3, on déplace la fenêtre 3x3 sur tous les
pixels et on donne la valeur unité 1 au point central si au
moins un des points contenu dans la fenêtre a une valeur
égale à 1.
11
Dilatation binaire
Exemple : On pose E et I, calculer 𝐼 𝐸
0 0 1
0 0 0 0 0 0 0
1 1 1
0 0 0 1 1 0 0
0 0 1
0 0 0 1 1 0 0
E
0 0 1 1 1 1 0
0 1 1 1 1 0 0
0 0 0 0 0
1 0
1 0
0 1 0 1 1 0 0
0 0 0
1 1 1 0
1 0
0 0 0 0 0 0 0
0 0 0
1 1 1 0
1 0
1
0 0
1 1 1 1 1 0
1 I
0
1 1 1 1 1 0
1 0
1
Pour construire 𝐼⨁𝐸, on part de I,
0
1 1 0
1 1 1 0
1 0 on « promène » E le long des points
0 0 0
1 0 0
1 0
1 0 x de I et on ajoute tous les points
𝐼⨁𝐸 de 𝐸𝑥 à notre image.
12
Dilatation binaire
Exercice: calculer 𝐼 𝐸
0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 0 1 0 1 0 0 0 1 1 1 1 1
0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0
1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0
0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1
E 0 1 1 1 0 0 0 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 1 1 1 0 0 0
I 𝐼⨁𝐸
La dilatation de I par E consiste donc à rajouter les points qui sont
4-voisins d’un point de I.
imdilate [Link]
13
Erosion binaire
A, I et E des ensembles de Z2 tels que I est inclus dans A
Ez est un élément structurant. Il admet un centre z
On déplace Ez de telle sorte que son centre occupe tous
les points de A et on pose la question:
Est-ce que Ez est inclus dans I?.
Tout les points z ayant une réponse positive forment un nouvel
ensemble dit érodé de I par E
L'érodé de I par l'élément structurant E est un
ensemble EE (I) tel qu'en chaque point de EE (I),
l'élément E est complètement inclus dans I.
IΘE EE (I) {z A / Ez (I) I}
14
Erosion binaire
15
Erosion binaire
Pour éroder une image binaire, il suffit de mettre à zéro
0 la valeur des pixels à chaque fois que l'élément
structurant, centré sur ce pixel, n'est pas entièrement
inclus dans l'objet
Pratiquement, pour construire l'image érodée par un
élément 3x3 centré, on déplace une fenêtre 3x3 sur
tous les pixels de l'image et on relève les valeurs des
pixels à l'intérieur de cette fenêtre.
Si au moins un des pixels à une valeur nulle, on met à
zéro la valeur du pixel central.
16
Erosion binaire
Exemple : On pose E et I, calculer 𝐼⊖𝐸
0 0 0 1 1
Ce point Non
1 1 1 1 1
est-il dans
Ce point 𝐼⊖𝐸 ?
1 0 0 1 0
est-il dans 0 0 0 0 0 0 0
E 𝐼⊖𝐸 ? 0 0 0 1 1 1 0
0 0 0 0 0 0 0 Non 0 1 1 1 1 1 0
0 0 0 0 0 0 0 0 1 1 1 1 1 0
0 0 0 1 0 0 0 Ce point 0 1 1 1 1 1 0
0 0 0 1 0 0 0 est-il dans 0 1 0 1 1 0 0
0 0 0 1 0 0 0 𝐼⊖𝐸 ?
0 0 0 0 0 0 0
0 0 0 0 0 0 0 Oui Ce point
est-il dans I
0 0 0 0 0 0 0
𝐼⊖𝐸 ?
𝐼⊖𝐸
Oui
17
Erosion binaire
Exercice: On pose E et I, calculer 𝐼⊖𝐸
0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 1 0 0 0
0 1 1 1 1 1 0 0 0 0 0 1 0 0
0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0
1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 0
0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
E 0 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0
I
L’érosion de I par E consiste donc à conserver uniquement
les points tels que leurs 4-voisins sont dans I.
18
Erosion binaire
Exercice: On pose E et I, calculer 𝐼⊖𝐸 0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 0 0 1 0 0
0 1 1 1 1 1 0
0 0 0 0 1 0 0
1 1 1 0 1 0 1 1 1 0
1 1 1 0 0 0 1 1 0 0
1 1 1 1 1 1 0
1 1 1 0 0 0 0 0 0 0
0 0 1 1 1 1 0
0 0 0 0 0 0 0
E 0 1 1 1 1 1 0
0 0 0 0 0 1 0
I
L’érosion de I par E consiste donc à conserver uniquement les points
tels que leurs 8-voisins sont dans I.
imerode [Link]
19
Morphologie Binaire
20
Morphologie Binaire
Dilatation
– Bouche les trous plus petits
que B,
– Élargit les caps,
– Soude deux formes proches
Erosion
– Elimine les composantes connexes plus petites que B,
– Élimine les caps étroits,
– Élargit les trous,
– Elimine les point isolés.
21
Propriétés de l’érosion et de la
dilatation
L'érosion ne préserve pas la La dilatation préserve la
connexité connexité
L'érosion est une La dilatation est une
transformation croissante transformation croissante
X Y EB X EB Y X Y DB X DB Y
L'érosion n'est pas La dilatation n'est pas
idempotente idempotente
EB EB X EB X
22
Propriétés de l’érosion et de la
dilatation
On peut noter quelques propriétés intéressantes de la
dilatation :
– La dilatation est associative: 𝑨 ⨁ (𝑩 ⨁ 𝑪) = (𝑨 ⨁ 𝑩) ⨁ 𝑪
– La dilatation est commutative: 𝑨 ⨁ 𝑩 = 𝑩 ⨁ 𝑨
– Si on note 𝑩 ⊕ 𝑩 ⊕ ⋯ ⊕ 𝑩 = 𝒏𝑩, alors
𝑨 ⊕ 𝑩 ⊕ 𝑩 ⊕ ⋯ ⊕ 𝑩 = 𝑨 ⊕ 𝒏𝑩
Plutôt que de faire n dilatations sur A (qui peut être une grande
image), on peut faire (n-1) dilatations de B (qui est généralement
petit), et une seule dilatation sur A (plus rapide).
23
Propriétés de l’érosion et de la
dilatation
On ne possède pas ces propriétés pour l’érosion :
0 0 0 0 0 0
0 0 0
0 0 0 0 0 0 0 0 1 1 0 0
1 1 1
0 1 1 1 1 0 0 0 1 1 0 0
0 0 0
0 1 1 1 1 0 0 0 1 1 0 0
B 0 0 1 1 0 0
0 1 1 1 1 0
0 1 0 0 1 1 1 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
A
C 0 0 1 1 0 0
0 0 1 1 0 0
𝐵⊖𝐶 =∅
0 0 0 0 0 0
donc 𝐴 ⊖ 𝐵 ⊖ 𝐶 = 𝐴 ≠ (𝐴 ⊖ 𝐵) ⊖ 𝐶
0 0 0 0 0 0
𝐵 ⊖ 𝐴 = ∅ donc 𝐴 ⊖ 𝐵 ≠ 𝐵 ⊖ 𝐴 𝐴⊖𝐵 ⊖𝐶
24
Propriétés de l’érosion et de la
dilatation : la décomposabilité
On possède néanmoins une propriété intéressante pour
l’érosion qui s’appelle la décomposabilité :
Cette propriété explique si un élément structurant peut
être décomposé en plusieurs dilatations, alors on peut
effectuer une érosion par cet élément structurant en
faisant plusieurs érosions successives.
25
Propriétés de l’érosion et de la
dilatation : la décomposabilité
A quoi peut servir la décomposabilité ?
– Imaginons le problème suivant : on veut calculer l’érosion de A par
D (𝐴 ⊖ 𝐷), mais on ne possède pas beaucoup de mémoire.
Impossible de charger A complètement dans la mémoire de
l’ordinateur !
0 0 0 0 0 0 On remarque que 𝐷 = 𝐵 ⊕ 𝐶
0 1 1 1 1 0
1 1 1 0 0 0 0 1 0
0 1 1 1 0 0
1 1 1 1 1 1 0 1 0
0 1 1 1 0 0
1 1 1 0 0 0 0 1 0
0 1 1 1 1 0
0 0 0 0 0 0 D B C
A
26
Propriétés de l’érosion et de la
dilatation : la décomposabilité
Grace à la propriété de la décomposabilité, on sait que
𝐴 ⊖ 𝐷 = 𝐴 ⊖ 𝐵 ⊕ 𝐶 = (𝐴 ⊖ B) ⊖ C
On prend B un élément structurant qui ne regarde que les
pixels de A situés sur une même ligne. On peut donc
effectuer une érosion par B en envoyant A, dans le module
d’érosion, ligne par ligne ( pour éviter de charger toute
l’image en mémoire)
Le même argument s’applique pour C à propos des colonnes
de A.
1 1 1 0 0 0 0 1 0
1 1 1 1 1 1 0 1 0
1 1 1 0 0 0 0 1 0
D B C 27
Propriétés de l’érosion et de la
dilatation : la décomposabilité
Solution : On effectue d’abord une érosion par B, puis
par C. 0 0 0 0 0 0
0 1 1 1 0 0
0 0 0 0 0 0
0 1 1 1 0 0
Erosion 0 0 0 0 0 0
0 1 1 1 1 0 0 0 1 0 0 0
0 1 1 1 1 0 par B 0 0 1 1 0 0
0 1 1 1 1 0 0 0 1 1 0 0
0 1 1 1 1 0
0 1 1 1 0 0 0 0 1 0 0 0
0 0 0
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0
1 1 1
A 0 0 0 0 0 0
0 0 0
𝑨⊖𝑩 ⊖𝑪=𝑨⊖𝑫
0 0 0 0 0 0 Erosion 0 0 0 0 0 0
0 0 0 0 0 0
par C 0 0 1 0 0 0
0 0 1 0 0 0
0 0 1 1 0 0
0 0 1 0 0 0
0 1 0 0 0 1 1 0 0
0 0 0 0 0 0
0 1 0 0 0 1 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
28
Propriétés de l’érosion et de la
dilatation : la décomposabilité
La dilatation respecte aussi la propriété de
décomposabilité :
Cette propriété explique si un élément structurant peut
être décomposé en plusieurs dilatations, alors on peut
effectuer une dilatation par cet élément structurant en
faisant plusieurs dilatations successives.
29
MORPHOLOGIE BINAIRE
Ouverture et
Fermeture
30
Ouverture
(érosion + dilatation)
L’ouverture morphologique consiste à effectuer une
érosion, puis une dilatation d’une image à l’aide du même
élément structurant E.
OE (I) = DE (EE(I))
On définit l’ouverture de I par E comme
I o E (I Θ E) E
imopen [Link]( img,
cv.MORPH_OPEN, kernel )
31
Ouverture
(érosion + dilatation)
Exemple: calculer le résultat de l’ouverture de I par Γ8
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,5
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,5
0 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 1 1 1 1 0 0
0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0,5
0 0
0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0,5
0 0,5
0 1 1 1 1 0 0
0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 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 1 1 1 1 0 0
0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0,5
0 0,5
0
0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0,5
0 0,5
0 1 1 1 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
I 𝑰 ⊖ 𝚪𝟖 𝑰 ∘ 𝚪𝟖 = 𝑰 ⊖ 𝚪𝟖 ⊕ 𝚪𝟖
1 1 1
1 1 1 L’ouverture permet de supprimer de l’objet les
1 1 1 branches où l’élément structurant ne passe pas.
𝚪𝟖 32
Ouverture
(érosion + dilatation)
On peut voir l’ouverture morphologique comme une peinture de
l’objet I avec un pinceau de la forme de E : tous les endroits de
I où E ne passe pas ne seront pas peints (et seront absents du
résultat).
𝐼 𝑰∘𝑬 33
Fermeture
(dilatation + érosion)
La fermeture morphologique est l’opération duale de
l’ouverture, et consiste à réaliser une dilatation suivie
d’une érosion.
FE (I) = EE (DE(I))
On définit la fermeture de I par E comme
I E ( I E) Θ E
imclose [Link] ( img,
cv.MORPH_CLOSE, kernel )
34
Fermeture
(dilatation + érosion)
Exemple: calculer le résultat de la fermeture de I par Γ8
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 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0,5
1 1 1 0 0
0 0 0 1 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0,5
1 1 1 0 0
0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0
0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0,5
1 1 1 0,5
1 0,5
1 0 0
0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0
0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 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 0 0 0 0 0 0 0
I 𝑰 ⊕ 𝚪𝟖 𝑰⦁𝚪𝟖 = 𝑰 ⊕ 𝚪𝟖 ⊖ 𝚪𝟖
1 1 1
1 1 1
La fermeture permet de boucher les trous ou les
petites « encoches » sur les bords de l’objet
1 1 1
𝚪𝟖 35
Propriétés de l’ouverture et de la
fermeture
L’ouverture et la fermeture sont toutes deux des
opérateurs croissants du point de vue de l’image
Du point de vue de l’élément structurant, l’ouverture est
décroissante tandis que la fermeture est croissante :
36
Propriétés de l’ouverture et de la
fermeture
La dernière propriété de l’ouverture et de la fermeture,
qui est essentielle à connaître, est l’idempotence :
Il n’est pas utile de répéter plusieurs fois une même
ouverture ou une même fermeture sur la même image !
37
Application de l’ouverture et la
fermeture
• Applications : souvent comme post-traitement
– Filtrage:
• Ouvertures pour enlever des pics isolés.
• Fermeture pour enlever des « creux » isolés.
– Lissage de forme :
• Ouverture pour lisser les « bosses ».
• Fermeture pour lisser les creux.
– Séparation en plusieurs composantes connexes (ouverture)
– Fusion de composantes séparées (fermeture)
38
Cas pratique : supprimer du bruit
Comment supprimer le bruit et extraire les outils de l’image ?
Im = imread('tools_noise.png');
D = strel('disk', 3);
Op1 = imopen(Im, D);
L = strel('line', 30, 0);
Op2 = imopen(Im, L);
Add = Op1 + Op2;
Gamma4 = strel('diamond', 1);
Op3 = imopen(Add, Gamma4);
Im
Op1 Add Op2 Op3 39
Cas pratique : suppression de bruit
poivre et sel
Comment supprimer le bruit et extraire les outils de l’image ?
I = imread('chien_bruit.png');
Gamma4 = strel('diamond', 1);
Op = imopen(I, Gamma4);
DeuxGamma8 = strel('square', 5);
Cl = imclose(Op, DeuxGamma8);
𝑰 ∘ 𝚪𝟒
(𝑰 ∘ 𝚪𝟒 )⦁𝟐𝚪𝟖
40
Cas pratique : extraire les contours
Comment faire pour récupérer les contours d’un objet (à
partir de l’image ci-dessous, récupérer la barrière seule)
?
Gradient morphologique
Gradient interne : contour intérieur
On obtient un contour intérieur en prenant le
complémentaire de A par rapport à son érodé
A – (A B)
42
Gradient morphologique
Gradient externe: contour externe
(A B)-A
43
Gradient morphologique
Gradient morphologique : Contour moyen
(AB)-(AB)
44
Dilatation en niveaux de gris
Soit 𝐼: 𝐴 ⊂ ℤ𝑛 → 𝐵 et 𝐸 ⊂ ℤn un élément structurant
On définit la dilatation de I par E l’application notée
𝐼⊕𝐸 telle que:
∀𝑥 ∈ 𝐴, (𝐼⊕𝐸)(𝑥)= Max { 𝐼(𝑦), 𝑦∈𝐸𝑥 }
La dilatation consiste à donner à tout pixel la valeur
maximale de l'image dans la fenêtre d'observation
définie par l’élément structurant.
45
Érosion en niveaux de gris
Soit 𝐼: 𝐴 ⊂ ℤ𝑛 → 𝐵 et 𝐸 ⊂ ℤn un élément structurant.
On définit l’érosion de I par E l’application notée 𝐼⊖𝐸
telle que:
∀𝑥 ∈ 𝐴, (𝐼⊖𝐸)(𝑥)= 𝑀𝑖𝑛 { 𝐼(𝑦), 𝑦∈𝐸𝑥 }
l'érosion consiste à donner à tout pixel la valeur
minimale de l'image dans la fenêtre d'observation
définie par l’élément structurant
46
Érosion en niveaux de gris
Exemple: Calculer 𝐼 ⊖ 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 𝐼
47
Dilatation et Érosion en niveaux de
gris
Dilatation
– Image plus brillante
– Partie foncée sont rehaussées (niveau de brillance plus élevée)
Érosion
– Image plus foncée
– Parties brillantes sont atténuées (niveau de brillance plus faible)
48