Traitement d’images
Cours 3 : Détection de contours
Segmentation
Stéphanie Bricq
[Link]@[Link]
Université de Bourgogne
S. Bricq (UB) Traitement d’images 1 / 78
Questions
Sur une image d’intensité avec des niveaux de gris compris entre
0 et 255, un pixel d’intensité 200 correspond à du
a. gris clair ?
b. gris foncé ?
S. Bricq (UB) Traitement d’images 2 / 78
Questions
Sur une image d’intensité avec des niveaux de gris compris entre
0 et 255, un pixel d’intensité 200 correspond à du
a. gris clair ?
b. gris foncé ?
Sur une image couleur, un pixel avec les valeurs (0, 255,255)
correspond à du
a. magenta ?
b. cyan ?
c. jaune ?
S. Bricq (UB) Traitement d’images 2 / 78
Questions
Sur une image, une zone homogène correspond à
a. Basse Fréquence ?
b. Haute Fréquence ?
S. Bricq (UB) Traitement d’images 3 / 78
Questions
Sur une image, une zone homogène correspond à
a. Basse Fréquence ?
b. Haute Fréquence ?
Sur une image, du bruit correspond à
a. Basse Fréquence ?
b. Haute Fréquence ?
S. Bricq (UB) Traitement d’images 3 / 78
Questions
Bruit présent sur l’image ?
Quel filtre utiliser pour enlever le bruit ?
S. Bricq (UB) Traitement d’images 4 / 78
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 5 / 78
Détection de contours Objectifs
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 6 / 78
Détection de contours Objectifs
Introduction
S. Bricq (UB) Traitement d’images 7 / 78
Détection de contours Objectifs
Introduction
contour = variation brusque d’intensité
S. Bricq (UB) Traitement d’images 7 / 78
Détection de contours Objectifs
Introduction
contour = variation brusque d’intensité
S. Bricq (UB) Traitement d’images 7 / 78
Détection de contours Objectifs
Introduction
Contour = frontière qui sépare 2 objets dans une image
Discontinuité de l’image
Détection de toutes les lignes marquant des changements
d’intensité
S. Bricq (UB) Traitement d’images 8 / 78
Détection de contours Objectifs
Introduction
Exemple de discontinuités
S. Bricq (UB) Traitement d’images 9 / 78
Détection de contours Objectifs
Principe
S. Bricq (UB) Traitement d’images 10 / 78
Détection de contours Objectifs
Principe
S. Bricq (UB) Traitement d’images 10 / 78
Détection de contours Objectifs
Principe
S. Bricq (UB) Traitement d’images 10 / 78
Détection de contours Objectifs
Principe
S. Bricq (UB) Traitement d’images 10 / 78
Détection de contours Objectifs
Principe
position des points contours d’un signal est donnée
S. Bricq (UB) Traitement d’images 11 / 78
Détection de contours Objectifs
Principe
position des points contours d’un signal est donnée
par le maximum du gradient (dérivée première)
S. Bricq (UB) Traitement d’images 11 / 78
Détection de contours Objectifs
Principe
position des points contours d’un signal est donnée
par le maximum du gradient (dérivée première)
par le passage à zéro du laplacien (dérivée seconde)
S. Bricq (UB) Traitement d’images 11 / 78
Détection de contours Objectifs
Détection de contours
peut être réalisée grâce à des filtres
2 filtres linéaires qui détectent les contours dans deux directions
orthogonales
par exemple, un filtre horizontal et un filtre vertical
S. Bricq (UB) Traitement d’images 12 / 78
Détection de contours Objectifs
Principe
Soient F1 et F2 le jeu de filtres linéaires
S. Bricq (UB) Traitement d’images 13 / 78
Détection de contours Objectifs
Principe
Soient F1 et F2 le jeu de filtres linéaires
S. Bricq (UB) Traitement d’images 13 / 78
Détection de contours Objectifs
Principe
Combinaison de IF1 et IF2 puis seuillage
S. Bricq (UB) Traitement d’images 14 / 78
Détection de contours Objectifs
Principe
Combinaison de IF1 et IF2 puis seuillage
S. Bricq (UB) Traitement d’images 14 / 78
Détection de contours Objectifs
Principe
Combinaison de IF1 et IF2 puis seuillage
S. Bricq (UB) Traitement d’images 14 / 78
Détection de contours Objectifs
Principe
Combinaison de IF1 et IF2 puis seuillage
S. Bricq (UB) Traitement d’images 14 / 78
Détection de contours Objectifs
Exemple
S. Bricq (UB) Traitement d’images 15 / 78
Détection de contours Objectifs
Exemple
S. Bricq (UB) Traitement d’images 15 / 78
Détection de contours Filtres gradients
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 16 / 78
Détection de contours Filtres gradients
Filtres gradients
3 filtres principaux
filtre de Prewitt
filtre de Sobel
filtre de Roberts
S. Bricq (UB) Traitement d’images 17 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 18 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 19 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 19 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 20 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 20 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 20 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 21 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 21 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 21 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 22 / 78
Détection de contours Filtres gradients
Filtre de Prewitt
S. Bricq (UB) Traitement d’images 22 / 78
Détection de contours Filtres gradients
Filtre de Prewitt : exemple
S. Bricq (UB) Traitement d’images 23 / 78
Détection de contours Filtres gradients
Filtres gradients
3 filtres principaux
filtre de Prewitt
filtre de Sobel
filtre de Roberts
S. Bricq (UB) Traitement d’images 24 / 78
Détection de contours Filtres gradients
Filtre de Sobel
S. Bricq (UB) Traitement d’images 25 / 78
Détection de contours Filtres gradients
Filtre de Sobel
S. Bricq (UB) Traitement d’images 26 / 78
Détection de contours Filtres gradients
Filtre de Sobel : exemple
S. Bricq (UB) Traitement d’images 27 / 78
Détection de contours Filtres gradients
Filtres gradients
3 filtres principaux
filtre de Prewitt
filtre de Sobel
filtre de Roberts
S. Bricq (UB) Traitement d’images 28 / 78
Détection de contours Filtres gradients
Filtre de Roberts
S. Bricq (UB) Traitement d’images 29 / 78
Détection de contours Filtres gradients
Remarque : application d’un filtre n*n avec n pair
pixel modifié par le filtre : pixel en haut à gauche
S. Bricq (UB) Traitement d’images 30 / 78
Détection de contours Filtres gradients
Remarque : application d’un filtre n*n avec n pair
pixel modifié par le filtre : pixel en haut à gauche
S. Bricq (UB) Traitement d’images 30 / 78
Détection de contours Filtres gradients
Remarque : application d’un filtre n*n avec n pair
pixel modifié par le filtre : pixel en haut à gauche
S. Bricq (UB) Traitement d’images 30 / 78
Détection de contours Filtres gradients
Filtre de Roberts
S. Bricq (UB) Traitement d’images 31 / 78
Détection de contours Filtres gradients
Filtre de Roberts : exemple
S. Bricq (UB) Traitement d’images 32 / 78
Détection de contours Filtres gradients
Comparaison des filtres
S. Bricq (UB) Traitement d’images 33 / 78
Détection de contours Filtres laplaciens
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 34 / 78
Détection de contours Filtres laplaciens
Filtre laplacien
masque correspondant au laplacien
S. Bricq (UB) Traitement d’images 35 / 78
Détection de contours Filtres laplaciens
Filtre laplacien
masque correspondant au laplacien
autres masques approchant le laplacien possible
S. Bricq (UB) Traitement d’images 35 / 78
Détection de contours Filtres laplaciens
Filtre laplacien : exemple
S. Bricq (UB) Traitement d’images 36 / 78
Détection de contours Filtres laplaciens
Filtre laplacien : exemple
S. Bricq (UB) Traitement d’images 37 / 78
Détection de contours Filtres laplaciens
Filtre laplacien : exemple
Gradient
S. Bricq (UB) Traitement d’images 37 / 78
Détection de contours Filtres laplaciens
Filtre laplacien : exemple
Gradient Laplacien
S. Bricq (UB) Traitement d’images 37 / 78
Détection de contours Filtres laplaciens
Détection de contours
Quel filtre choisir ?
Aucun opérateur n’est parfait pour détecter les contours
En pratique, contours incomplets
des pixels superflus
des manques
des erreurs de position et d’orientation des pixels contours
opérateur de détection de contour = 1ère étape dans la chaine de
segmentation
S. Bricq (UB) Traitement d’images 38 / 78
Segmentation
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 39 / 78
Segmentation
Segmentation
Principe
rassembler des pixels entre eux suivant des critères pré définis
pixels regroupés en régions connexes constituant un pavage ou
une partition de l’image
critères de partition :
niveau de gris des pixels,
couleur
texture
A chaque pixel, on associe un numéro de région
S. Bricq (UB) Traitement d’images 40 / 78
Segmentation
Segmentation
Principe
rassembler des pixels entre eux suivant des critères pré définis
pixels regroupés en régions connexes constituant un pavage ou
une partition de l’image
critères de partition :
niveau de gris des pixels,
couleur
texture
A chaque pixel, on associe un numéro de région
Types de segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
S. Bricq (UB) Traitement d’images 40 / 78
Segmentation
Segmentation
Conditions de toute bonne segmentation
doit être complète : Chaque pixel doit être dans une classe
Pixels appartenant à la même région doivent être connectés
régions doivent être disjointes
S. Bricq (UB) Traitement d’images 41 / 78
Segmentation basée sur les pixels
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 42 / 78
Segmentation basée sur les pixels
Segmentation basée sur les pixels
Principe
A chaque pixel on associe un numéro de région qui ne dépend
que de son niveau de gris
= Seuillage
On sépare ensuite les régions disjointes
S. Bricq (UB) Traitement d’images 43 / 78
Segmentation basée sur les pixels
Seuillage simple
Principe
Soit I1 la matrice d’une image en niveaux de gris
On choisit un seuil s
On construit une matrice I2 à partir de I1 :
Si I1(i, j) ≤ s
alors I2(i, j) = 0
sinon I2(i, j) = 1
I2 est la matrice d’une image binaire
S. Bricq (UB) Traitement d’images 44 / 78
Segmentation basée sur les pixels
Exemple : Seuillage simple à 200
S. Bricq (UB) Traitement d’images 45 / 78
Segmentation basée sur les pixels
Exemple : Seuillage simple à 200
S. Bricq (UB) Traitement d’images 45 / 78
Segmentation basée sur les pixels
Exemple : Seuillage simple à 150
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 46 / 78
Segmentation basée sur les pixels
Exemple : Seuillage simple à 150
Image seuillée
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 46 / 78
Segmentation basée sur les pixels
Seuillage multiple à partir d’un nombre de classes
Principe
Soit I1 la matrice d’une image en niveaux de gris
On choisit un nombre de classes n
On construit une matrice I2 à partir de I1 :
Si I1(i, j) ≤ 255/n alors I2(i, j) = 0
Si k ∗ 255/n < I1(i, j) ≤ (k + 1) ∗ 255/n
alors I2(i, j) = k pour k de 1 à n − 1
Les valeurs de I2 sont entre 0 et n − 1 inclus
S. Bricq (UB) Traitement d’images 47 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple en 5 classes
Classe 0 : [0 , 51[
Classe 1 : [51 , 102[
Classe 3 : [153 , 204[
Classe 2 : [102 , 153[
Classe 4 : [204 , 255]
S. Bricq (UB) Traitement d’images 48 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple en 5 classes
Classe 0 : [0 , 51[
Classe 1 : [51 , 102[
Classe 3 : [153 , 204[
Classe 2 : [102 , 153[
Classe 4 : [204 , 255]
S. Bricq (UB) Traitement d’images 48 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple en 10 classes
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 49 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple en 10 classes
Image seuillée en 10 classes
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 49 / 78
Segmentation basée sur les pixels
Seuillage multiple à partir d’une liste de seuils
Principe
Soit I1 la matrice d’une image en niveaux de gris
On choisit une liste de seuils croissants (s1 , s2 , ..., sm )
On construit une matrice I2 à partir de I1 :
Si I1(i, j) ≤ s1 alors I2(i, j) = 0
Si sk < I1(i, j) ≤ sk +1 alors I2(i, j) = k pour k de 1 à m − 1
Si I1(i, j) > sm alors I2(i, j) = m
Les valeurs de I2 sont entre 0 et m inclus
S. Bricq (UB) Traitement d’images 50 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple avec changements en
100 et 200
Classe 0 : [0 , 100] Classe 1 : ]100 , 200] Classe 2 : ]200 , 255]
S. Bricq (UB) Traitement d’images 51 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple avec changements en
100 et 200
Classe 0 : [0 , 100] Classe 1 : ]100 , 200] Classe 2 : ]200 , 255]
S. Bricq (UB) Traitement d’images 51 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple avec changements en
100, 125, 150, 175, 200
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 52 / 78
Segmentation basée sur les pixels
Exemple : Seuillage multiple avec changements en
100, 125, 150, 175, 200
Image seuillée
Image en niveaux de gris
S. Bricq (UB) Traitement d’images 52 / 78
Segmentation basée sur les pixels
Segmentation basée sur les pixels
Principe
A chaque pixel on associe un numéro de région qui ne dépend
que de son niveau de gris
= seuillage
On sépare ensuite les régions disjointes
S. Bricq (UB) Traitement d’images 53 / 78
Segmentation basée sur les pixels
Segmentation par seuillage multiple
Changements de classes en 20 – 60 – 100
S. Bricq (UB) Traitement d’images 54 / 78
Segmentation basée sur les pixels
Segmentation par seuillage multiple
Changements de classes en 20 – 60 – 100
S. Bricq (UB) Traitement d’images 54 / 78
Segmentation basée sur les pixels
Segmentation par seuillage multiple
Changements de classes en 20 – 60 – 100
S. Bricq (UB) Traitement d’images 54 / 78
Segmentation basée sur les pixels
Segmentation par seuillage
Déduction du seuil à partir de l’observation de l’histogramme
Inconvénients : Connaître le nombre de classes
S. Bricq (UB) Traitement d’images 55 / 78
Segmentation basée sur les pixels
Méthode de Otsu
S. Bricq (UB) Traitement d’images 56 / 78
Segmentation basée sur les pixels
Méthode de Otsu
S. Bricq (UB) Traitement d’images 57 / 78
Segmentation basée sur les pixels
Méthode de Otsu
S. Bricq (UB) Traitement d’images 58 / 78
Segmentation basée sur les régions
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 59 / 78
Segmentation basée sur les régions
Segmentation basée sur les régions
Différentes méthodes
accroissement de régions
séparation de régions
split and merge
S. Bricq (UB) Traitement d’images 60 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
Principe
Segmentation basée sur les régions
On part d’un ensemble de petites régions homogènes auxquelles
on incorpore petit à petit de nouveaux pixels répondant au critère
d’homogénéité
On définit un critère d’homogénéité H
On part d’une petite région homogène R.
Tous les pixels autour de R répondant au critère H sont intégrés à
la région R.
On s’arrête lorsque tous les pixels sont associés à une région
Exemple
S. Bricq (UB) Traitement d’images 61 / 78
Segmentation basée sur les régions
Croissance de régions
S. Bricq (UB) Traitement d’images 62 / 78
Segmentation basée sur les régions
Croissance de régions : algorithme
S. Bricq (UB) Traitement d’images 63 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
Remarques
Les régions obtenues dépendent fortement des pixels de départ
et de l’ordre dans lequel les pixels de la frontière sont examinés
Le résultat final est très sensible à la valeur du seuil
S. Bricq (UB) Traitement d’images 64 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 65 / 78
Segmentation basée sur les régions
Segmentation par accroissement de régions
S. Bricq (UB) Traitement d’images 66 / 78
Segmentation basée sur les régions
Segmentation par découpage de régions
Principe
Segmentation basée sur les régions
On part de l’image entière que l’on divise récursivement en plus
petites régions tant que celles-ci ne sont pas suffisamment
homogènes
On définit un critère d’homogénéité H
On part d’une région couvrant l’image complète.
Si la région n’est pas homogène, on la divise en 2 ou 4 parties
égales.
On s’arrête lorsqu’on n’a que des régions homogènes
Exemple
S. Bricq (UB) Traitement d’images 67 / 78
Segmentation basée sur les régions
Split and merge
Principe
Segmentation basée sur les régions
On commence par diviser l’image par splitting
On regroupe ensuite les régions par merging
S. Bricq (UB) Traitement d’images 68 / 78
Segmentation basée sur les régions
Split and merge
S. Bricq (UB) Traitement d’images 69 / 78
Segmentation basée sur les régions
Split and merge
S. Bricq (UB) Traitement d’images 69 / 78
Segmentation basée sur les régions
Split and merge
S. Bricq (UB) Traitement d’images 69 / 78
Segmentation basée sur les régions
Split and merge
S. Bricq (UB) Traitement d’images 69 / 78
Segmentation basée sur les régions
Split and merge
S. Bricq (UB) Traitement d’images 69 / 78
Segmentation basée sur les contours
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 70 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours
Principe
On détecte les contours des objets de l’image
On complète le traitement par une méthode de reconstruction de
ces contours
S. Bricq (UB) Traitement d’images 71 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
2 fermeture des contours
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
2 fermeture des contours
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
2 fermeture des contours
3 définition des régions
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Segmentation basée sur les contours : Exemple
1 détection de contours
2 fermeture des contours
3 définition des régions
S. Bricq (UB) Traitement d’images 72 / 78
Segmentation basée sur les contours
Critères d’évaluation de la segmentation
S. Bricq (UB) Traitement d’images 73 / 78
Classification
Plan
1 Détection de contours
Objectifs
Filtres gradients
Filtres laplaciens
2 Segmentation
basée sur les pixels
basée sur les régions
basée sur les contours
3 Classification
S. Bricq (UB) Traitement d’images 74 / 78
Classification
Classification
Principe
Pour chaque pixel, on calcule un certain nombre de paramètres
En fonction de la valeur de ces paramètres, on associe le pixel à
une classe
Le seuillage est une méthode simple de classification
S. Bricq (UB) Traitement d’images 75 / 78
Classification
Classification
Classification supervisée
On définit le nombre de classes et les conditions auxquelles
doivent répondre les pixels de chaque classe
Pour chaque pixel, on cherche la classe qui lui correspond le
mieux
Certains pixels peuvent ne pas être classés
Exemple
S. Bricq (UB) Traitement d’images 76 / 78
Classification
Classification
Classification non supervisée
On crée les classes au fur et à mesure de la classification
Pour chaque pixel, si une classe correspond à sa situation, on lui
associe cette classe
Dans le cas contraire, on crée une nouvelle classe qui lui sera
associée
Tous les pixels seront classés
Exemple
S. Bricq (UB) Traitement d’images 77 / 78
Classification
Classification
S. Bricq (UB) Traitement d’images 78 / 78
Classification
Classification
S. Bricq (UB) Traitement d’images 78 / 78
Classification
Classification
S. Bricq (UB) Traitement d’images 78 / 78