0% ont trouvé ce document utile (0 vote)
5 vues27 pages

Méthodes de Segmentation d'Images en 2025

Le document présente une séance sur la segmentation d'images, abordant des méthodes telles que le seuillage, K-means, et le template matching. Il définit la segmentation comme le partitionnement d'une image en régions disjointes selon des critères d'homogénéité, et décrit différentes approches pour identifier les objets d'intérêt. Les applications de la segmentation incluent la télédétection, l'imagerie médicale et les effets spéciaux.

Transféré par

hanane.elamine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues27 pages

Méthodes de Segmentation d'Images en 2025

Le document présente une séance sur la segmentation d'images, abordant des méthodes telles que le seuillage, K-means, et le template matching. Il définit la segmentation comme le partitionnement d'une image en régions disjointes selon des critères d'homogénéité, et décrit différentes approches pour identifier les objets d'intérêt. Les applications de la segmentation incluent la télédétection, l'imagerie médicale et les effets spéciaux.

Transféré par

hanane.elamine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

29/11/2025

Vision industrielle
Segmentation
2ème année AE3S-GI Pr. Ibtissam BENMILOUD

Année universitaire 2025/2026

Plan de la séance
• Introduction et Objectifs
• Définitions
• Vue d’ensemble des méthodes de segmentation
• Seuillage
o simple, par la méthode Otsu et adaptatif
• Kmeans
• Template Matching
• Etiquetage des régions
• Fonctions utilisées en OPENCV

1
29/11/2025

Introduction
Partitionnement de l’image en régions disjointes
Objectif : identifier les objets d’intérêt dans une image (objet = région à segmenter)
Il existe 2 approches:
• Approche «régions» : les régions sont déterminées en fonction d’un critère
comme: le niveau de gris, la texture ou la couleur
• Approche «contours»: les régions sont délimitées par les contours des objets
qu’elles représentent (séparation)

Représentation de la région
Segmentation

Recherche de frontières: Recherche de régions:


approches «contours» approches «régions»

Labélisation
4

2
29/11/2025

Objectifs
La segmentation est liée à la reconnaissance d’objets présents dans l’image.

• Objet = région à segmenter

• Quels objets voit-on dans l’image ?

• Définition d’objets
• Connexe, couleur cohérente, délimité par des contours nets.
• Texture cohérente

Remarques
• Chaque région est une composante connexe
• Le résultat de la segmentation n’est pas unique (méthode, critère de
l’homogénéité, initialisation, etc.)
• Une segmentation peut être interprétée comme un graphe (nœuds = régions,
liens entre régions voisines)

3
29/11/2025

Segmentation par la couleur

Segmentation par la par la texture

4
29/11/2025

Segmentation par la forme

Applications

Télédétection: classification d’une région agricole

10

5
29/11/2025

Applications

Segmentation d’images médicales

11

Applications

Effets spéciaux: incruster un objet

12

6
29/11/2025

Définition
• La segmentation consiste à partitionner une image suivant un critère d’homogénéité H

• La partition est un ensemble de région Ri disjointes qui recouvrent l’intégralité de l’image


• Le critère d’homogénéité H:
• est vérifié par chaque région Ri
• n’est pas vérifié pour l’union de deux régions adjacentes

13

Vue d’ensemble
Techniques de segmentation

Histogramme
Seuillage
Approches Template Approches régions
Méthodes de classification:
K-means frontières Matching
Modèles paramétriques
Croissance des Texture
régions
Méthodes dérivatives Méthodes variationnelles
Détection de contours (contours actifs) Division/Fusion
+
Fermeture des contours
14

7
29/11/2025

Exemple de méthodes de segmentation


La méthode de seuillage dont le critère est les niveaux de gris

La méthode de classification dont le critère est la couleur

15

Exemple de méthodes de segmentation


La méthode de classification dont le critère est la texture

La méthode de contours actifs dont le critère est les contours

16

8
29/11/2025

Exemple de méthodes de segmentation


La méthode de croissance des régions dont le critère est la différence d’intensité

La méthode de détection de contours dont le critère est la recherche des pixels


dissemblables

17

Segmentation par seuillage


But: affecter chaque pixel d’une image en niveaux de gris à une classe en fonction d’un seuil S.
C’est une binarisation dans le cas de deux classes
Principe:
• Extraire des seuils à partir de l’histogramme
• Classification d’un pixel p par comparaison aux seuils
Seuillage:
• Trouver le (s) seuil(s) qui sépare à mieux les deux objets (ou plus)
• Exemple de valeur de seuil: la moyenne des niveaux de gris
Deux types de méthodes de seuillage:
• Seuillage global: un seuil pour toute l’image
• Seuillage adaptatif: un seuil s’ajustant selon les parties de l’image

18

9
29/11/2025

Seuillage pour une binarisation


Seuillage à 2 classes:
Si valeur(pixel)> seuil alors valeur(pixel)=1
Si valeur(pixel)≤ seuil alors valeur(pixel)=0

Le résultat est une image binaire

19

Seuillage pour une binarisation

Choix du seuil est moins évident

20

10
29/11/2025

Fonction [Link]
[Link]
• Syntax: [Link](source, thresholdValue, maxVal, thresholdingTechnique)
• ret,thresh1 = [Link](img,127,255,cv.THRESH_BINARY)
• ret,thresh2 = [Link](img,127,255,cv.THRESH_BINARY_INV)
• ret,thresh3 = [Link](img,127,255,cv.THRESH_TRUNC)
• ret,thresh4 = [Link](img,127,255,cv.THRESH_TOZERO)
• ret,thresh5 = [Link](img,127,255,cv.THRESH_TOZERO_INV)

I. Benmiloud 21

Méthode de «Otsu»
La méthode de Otsu permet de déterminer un seuil optimal qui minimise la
variance intra-classe σ2w

σ2w t = q1 t σ12 t + q 2 t σ22 t

Cela revient à maximiser la variance inter-classe 𝜎𝑏2

𝜎𝑏2 (𝑡) = 𝑞1 (𝑡)𝑞2 𝑡 (𝜇1 (𝑡) − 𝜇2 (𝑡))2

La variance 𝜎 2 des intensités de l’image est 𝜎 2 = 𝜎𝑤2 + 𝜎𝑏2

22

11
29/11/2025

Méthode de «Otsu»
La probabilité de chaque classe:
𝑡 256
𝑞1 𝑡 = 𝑖=1 𝑃(𝑖) et 𝑞2 𝑡 = 𝑖=𝑡+1 𝑃(𝑖)

• Avec
h
• 𝑷(𝒕) = 𝑵t la probabilité de t
• ht: le nombre de pixels du niveau de gris t
• N: Nombre total de pixels

La moyenne de chaque classe:


1 𝑡 1 256
• 𝜇1 𝑡 = 𝑖=1 𝑖 𝑃(𝑖) et 𝜇2 𝑡 = 𝑖=𝑡+1 𝑖 𝑃(𝑖)
𝑞1 (𝑡) 𝑞2 (𝑡)

La variance de chaque classe :


1 𝑡 1
• 𝜎12 𝑡 = 𝑞 𝑖=1(𝑖 − 𝜇1 𝑡 )2 𝑃(𝑖) et 𝜎22 𝑡 = 𝑞 𝑖=𝑡+1256(𝑖 − 𝜇2 𝑡 )2 𝑃(𝑖)
1 (𝑡) 2 (𝑡) 23

Méthode de «Otsu»

Implémentation de la méthode

Calculer pour tous les seuils t ∈ [1, 256] la variance inter-classe𝜎𝑏2 𝑡 et retenir le seuil
T qui maximise 𝜎𝑏2 𝑡

24

12
29/11/2025

Etapes d’«Otsu»
Wikipedia

Seuil S=0 S=1 S=2 S=3 S=4 S=5


Variance intra-classe 𝜎𝑤2 =3.1196 𝜎𝑤2 =1.5268 𝜎𝑤2 =0.5561 𝜎𝑤2 =0.4909 𝜎𝑤2 =0.9779 𝜎𝑤2 =2.2491
Variance inter-classe 𝜎𝐵2=0 𝜎𝐵2=1.5928 𝜎𝐵2 =2.5635 𝜎𝐵2=2.6287 𝜎𝐵2=2.1417 𝜎𝐵2=0.8705
25

Fonction pour le seuillage avec OTSU


Syntaxe :
ret,th1 = [Link] (img, 0, 255, cv2.THRESH_OTSU)
ret = 131

26

13
29/11/2025

Cas de l’éclairage non uniforme


La variation d’illumination ne permet pas de seuiller l’image correctement avec un
seul seuil.

27

Seuillage adaptatif
• On divise l’image en un certain nombre de sous-régions
• On calcule le seuil pour chaque région indépendamment

28

14
29/11/2025

Fonction [Link]
Syntaxe:
[Link](source, maxVal, adaptiveMethod, thresholdType, blocksSze, C)

adaptiveMethod

Exemple :
th2 = [Link](img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,41,2)
Cela signifie :
Un seuillage adaptatif en utilisant des voisinages de 41(doit être impair) et en mettant les valeurs au-dessus
de la moyenne locale moins 2 à la valeur 255.

29

Résultat
BlockSize = 11 BlockSize = 41
C=2 C=0

31

15
29/11/2025

Seuillage multi-seuils
Lorsque plusieurs modes sont visibles sur l’histogramme, il est possible d’utiliser
plusieurs seuils pour aboutir à plusieurs classes

2 𝑠𝑖 𝑓 𝑥, 𝑦 ≥ 𝑇2
𝑔 𝑥, 𝑦 = 1 𝑠𝑖 𝑓 𝑥, 𝑦 ≥ 𝑇1
0 𝑠𝑖 𝑓 𝑥, 𝑦 < 𝑇1

32

Exemple de seuillage avec 2 seuils


# Définir les seuils pour 3 classes
threshold1 = 75 # Premier seuil
threshold2 = 120 # Deuxième seuil

# Créer une image vide pour stocker les classes


segmented_image = np.zeros_like(gray_image)

# Appliquer la segmentation
segmented_image[gray_image < threshold1] = 0
segmented_image[(gray_image >= threshold1) & (gray_image < threshold2)] = 1*127
segmented_image[gray_image >= threshold2] = 2*127

33

16
29/11/2025

Avantages/Inconvénients
Avantages:
• Universel, temps réel, simplicité
• Fonctionne bien sur des histogrammes multimodaux
Inconvénients:
• Apparition de faux éléments (aucune prise en compte de la composante spatiale)
• Nombre de modes souvent différents du nombre de classes attendues
• Il faut connaitre le nombre de classes

Deux modes mais trois classes 34

Méthodes de clustering: K-means


 Extension du seuillage d’histogramme aux images couleurs
 Chaque pixel contient 3 composantes R, V et B
 3 histogrammes pour représenter chaque bande.
 Difficulté à exploiter la méthode basée sur l’histogramme
 Principe des méthodes de clustering: regrouper les vecteurs
en groupes homogènes.

35

17
29/11/2025

Algorithme de K-means
On veut diviser les points en k groupes (clusters) (k est donné à l’avance)
Algorithme
- Partionnement aléatoire des points en k groupes
- Calcul du centroïde de chacun des groupes
- Répéter tant que les centroïdes varient:
• Pour chaque point:
• Calcul des distances du point à tous les centroïdes

• Affectation au point au groupe le plus proche

• Calcul du centroïde de chacun des groupes


36

Exemple en 2D
Partionnement aléatoire des points Calcul du centroïde de chacun des groupes
en 2 groupes
 Calcul des distances du point aux 2
centroïdes
 Affectation du point au groupe le plus
proche

Mise à jour du centroïde de chacun Arrêt de l’algorithme quand les centroïdes


des groupes et l’affectation ne varient plus
des points au nouveau groupe

[Link]

37

18
29/11/2025

Comparaison entre OTSU et Kmeans

Image originale Segmentation par OTSU Segmentation par Kmeans


avec 2 seuils avec k = 3

38

Avantages/Inconvénients
Avantages Inconvénients
 Méthode simple  Nécessite de connaître le nombre de
classes
 Implémentation facile  Sensible à l’initialisation
 Fonctionne correctement lorsque  Peut être lent en grande dimension
les clusters sont sphériques  Échoue pour des structures non
sphériques

 Sensible aux valeurs aberrantes

39

19
29/11/2025

Template Matching
Basée sur la recherche de la position spatiale d’un motif (objet) M connu dans une image I
La recherche se fait par le calcul de l’intercorrélation bidimensionnelle 𝐶 𝑥, 𝑦 entre l’image I et
l’image motif M:

𝑖=ℎ/2 𝑗=𝑤/2 ℎ 𝑤
1 (𝐼 𝑥 + 𝑖, 𝑦 + 𝑗 − 𝜇𝑥𝑦 )(𝑀 𝑖 + 2 , 𝑗 + 2 − 𝜇𝑀 )
𝐶 𝑥, 𝑦 =
𝑤ℎ 𝜎𝑥𝑦 𝜎𝑀
𝑖=−ℎ/2 𝑗=−𝑤/2

• w et h représentent respectivement la largeur et la hauteur de l’image motif M.


• mxy et sxy sont respectivement la moyenne et l’écart type des pixels dans la fenêtre autour du pixel (x,y)
de l’image source I
• et mM et sM sont sont respectivement la moyenne et l’écart type des pixels de l’image motif M
40

Exemple de code avec opencv


Result = [Link](img_gray,template_gray,cv2.TM_CCOEFF_NORMED)

Conversion en NDG

Image RGB img_gray

Conversion en NDG

Template Result
template_gray
RGB

41

20
29/11/2025

Tracé d’un rectangle


# Trouver toutes les positions où la correspondance est supérieure au seuil
locations = [Link](result >= 0.8)

# Afficher toutes les correspondances trouvées


for pt in zip(*locations[::-1]): # Inverser les coordonnées
top_left = pt
bottom_right = (top_left[0] + template_width, top_left[1] + template_height)
[Link](imageRGB, top_left, bottom_right, (0,255,0), 2)

imageRGB

42

Utilité d’une image «étiquette»

Cas d’une image binaire


• Numériquement, on ne distingue pas les 2 oiseaux

Cas d’une image «étiquette»


• Chaque oiseau est une entité propre et peut être étudié individuellement.

43

21
29/11/2025

Relations entre les pixels (1)

(m,n) (m,n)

4-voisinages 8-voisinages Composante connexe

44

Relations entre les pixels (2)


Combien de composantes connexes ?

5 composantes connexes en 4-voisinage 4 composantes connexes en 8-voisinage


45

22
29/11/2025

Exemple

2 composants
3 composants avec 8
avec 4 connectivités
connectivités

46

Etiquetage des régions (labels)


Un plan d’étiquettes est une image de même dimension et parallèle au plan image. Il indique les
étiquettes correspondant aux pixels (toutes les étiquettes sont différentes).

47

23
29/11/2025

Les composants connectés avec OpenCV


nb_components, output, stats, centroids = [Link](threshold, connectivity=K)
print("Nombre de composantes connectées : ", nb_components)
[Link](output, cmap='jet')

K = 4 , nb_components = 90 K = 8 , nb_components = 87

48

Analyse des composants connectés (1)


areas = []
for i in range(1, nb_components): # On commence à 1 pour ignorer le fond (composante 0)
area = stats[i, cv2.CC_STAT_AREA]
[Link](area)

# Afficher l'histogramme des surfaces


[Link](areas, bins=20)
[Link]('Surface')
[Link]('Nombre d\'objets')
[Link]('Histogramme des surfaces des objets')
[Link]()

49

24
29/11/2025

Analyse des composants connectés (2)


# Filtrer les objets en fonction de leur superficie
filtered_objects = []
for i in range(1, nb_components):
area = stats[i, cv2.CC_STAT_AREA]
if 200 <= area <= 400:
filtered_objects.append(i)
# Créer une nouvelle image pour afficher uniquement les objets filtrés
filtered_image = np.zeros_like(output)
for obj_index in filtered_objects:
filtered_image[output == obj_index] = 255

50

Limites de la segmentation (1)


La segmentation ne peut pas trouver tous les objets de l’image tel que nous les
interprétons!

52

25
29/11/2025

Limites de la segmentation (2)


Un objet n'appartient pas à une région !

53

Indices de forme

Attributs géométriques d’une région R


Surface: S(R) = K, avec K est le nombre de pixels de la région R
Périmètre: P(R), calculé comme la somme des distances des pixels consécutifs du
contour.

Le facteur de circularité
4𝜋𝑆(𝑅)
(>=1, ne vaut 1 que pour les disques)
𝑃2 (𝑅)
Ce facteur nous renseigne sur la forme de l’objet s’il est circulaire ou allongé

54

26
29/11/2025

Application 3
• Identifier les objets ronds
• Identifier_objets_circulaire.mlx

I. Benmiloud 55

Fonctions utiles de Matlab


strel: crée un élément structurant en une forme quelconque, avec une taille donnée.
imerode: utilisée pour l’érosion (Elimination des objets dont la taille est plus petite que l’élément
structurant).
imdilate: utilisée pour la dilatation (Grossissement des objets d’une partie correspondante à la taille de
l’élément structurant).
imopen: utilisée pour une ouverture (une érosion suivie d’une dilatation)
imclose: utilisée pour une fermeture (une dilatation suivie d’une érosion)
bwlabel: permet d’étiqueter les objets présents dans une image binaire selon la connexité (4 ou 8).
regionprops: permet de déterminer les propriétés des objets présents dans l’image avec des labels.
label2rgb: permet d’affecter des couleurs aux différents objets présents dans l’image labélisée.
Imfill : permet de remplir les trous dans une région

56

27

Vous aimerez peut-être aussi