Vous êtes sur la page 1sur 41

Master : Systèmes d’Information Décisionnels et

Imagerie
Module : Traitement Numérique d’images
Chapitre 3: Détection des contours et seuillage

Professeur : Ahmad EL ALLAOUI


Département d’Informatique, FST Errachidia
a.elallaoui@umi.ac.ma
Année universitaire :2022/2023

1
Introduction
• Les contours constituent une information
essentielle pour certaines applications de
traitement d’images.
• Les contours d’un objet permettent en général
de caractériser sa forme.
• La détection de contours consiste à chercher
les courbes continues le long des zones de
fortes variations dans l’image. 2
Introduction
• Les contours représentent les frontières
entre deux régions homogènes adjacentes
ayant des intensités lumineuses
différentes.
• La détection de contours consiste à
extraire ses frontières.

3
Etape de la détection de contour

1- Lissage: supprimer autant de bruit que possible, sans


détruire les vrais contours.

2-Amélioration: appliquer la différenciation pour améliorer la


qualité des contours.

3-Seuillage: déterminer quels pixels de contour doivent être


éliminés comme bruit et quels pixels doivent être conservés.

4-Localisation: déterminer l’emplacement exact de contour.

4
Détection des contours par la dérivée première 2D
(gradient)

5
Détection des contours par la dérivée première 2D
(gradient)

6
Modèle d’un contour

7
Modèle d’un contour

8
Modèle d’un contour en 2D
En 2D, on calcule
les dérivées premières /x et /y , ce qui correspond au gradient g
(perpendiculaire au contour).
Ou les dérivées secondes /x et /y , ce qui correspond à une des
composantes du Laplacien

9
Modèle d’un contour
• La détection de zones de variation des niveaux
de gris de l’image correspond à l’opération de
dérivation.
• Comme une image numérique n’est pas une
fonction continue, la notion de dérivée n’est pas
formellement définie et on utilisera un analogue
appelé gradient.
• Comme une image a 2 dimensions, le gradient
de l’image f, notée ∇f, est une image vectorielle,
donnée par les deux dérivées partielles :
• ∇f=(∂f/∂x, ∂f/∂y). 10
Contour: Gradient

11
Contour: Gradient
• La détection des contours peut être réalisé
grâce à des filtres dont les cœfficients sont
soigneusement choisis.
• Nous aborderons dans ce chapitre trois jeux
de filtres particuliers :
– Filtre de Prewitt.
– Filtre de Roberts.
– Filtre de Sobel.
12
Contour: Gradient
• La détection des contours se fait dans les deux
directions orthogonales.
• Certains filtres sont définis sous Matlab,
• On peut les obtenir grâce à la fonction fspecial
h = fspecial(type)
h = fspecial('average',hsize)
h = fspecial('disk',radius)
h = fspecial('gaussian',hsize,sigma)
h = fspecial('laplacian',alpha)
h = fspecial('log',hsize,sigma)
h = fspecial('motion',len,theta)
h = fspecial('prewitt’) 13
h = fspecial('sobel')
Filtres de Prewitt

Les filtres de Prewitt sont les suivants :

Filtre horizontal :

Filtre vertical :

14
Détecteur de contour

15
Détecteur de contour
Gradient : Roberts Gradient : Prewitt

16
Filtres de Sobel
• Les filtres de Sobel définit les dérivées partielles de la
manière suivante :

Filtre horizontal :

Filtre vertical :

Exemple

17
Filtres de Roberts

• Les filtres de Roberts sont les suivants :


Filtre diagonal :

Filtre anti-diagonal :

18
Détecteur de contour
Gradient : Prewitt

19
Détecteur de contour
Gradient : Prewitt

20
Détecteur de contour
Gradient : Sobel

21
Détecteur de contour
Gradient : Sobel

22
Détecteur de contour
Gradient : Laplacien

23
Détecteur de contour
• Si l’on souhaite obtenir une image de contour
unique, ne tenant pas compte de l’orientation,

• on calcule :

• On cherchera souvent à obtenir une image de


contour binaire.

24
Exercice :Comparaison de filtres de détection de
contours
Principe de l’expérimentation :
• Comparer les performances des filtres de
Prewitt, Sobel et Roberts.
• Nous allons créer une image contenant un
contour Vertical, et nous allons estimer, pour
chaque filtre, deux grandeurs caractéristiques :
– La probabilité de détection
– La probabilité de fausses alarme

25
Exercice :Comparaison de filtres de détection de
contours
• La probabilité de détection : pourcentage de points
de contours correctement détectés.
La probabilité de fausses alarmes : pourcentage de
points hors contour détectés à tort comme contour.
• Pour simplifier la comparaison, on réglera les seuils
de manière à avoir à peu prés la même probabilité de
fausses alarmes pour les trois filtres.
• Il suffira alors de comparer les probabilités de détection.

26
Calcul d’un détecteur de contour par
apprentissage
• Pour calculer un filtre par apprentissage, on crée
une base d’exemples, contenant des contours et
des zones uniformes.
• Pour chaque exemple, on indique la réponse que
l’on souhaite.
• La méthode d’apprentissage calcule
automatiquement le filtre qui donne les réponses
les plus proches de celles qui sont indiquées.
• Nous allons chercher à calculer un filtre
détecteur de contours verticaux.
27
28
Master : Systèmes d’Information Décisionnels et
Imagerie
Module : Traitement Numérique d’images
Chapitre 3: Seuillage

Professeur : Ahmad EL ALLAOUI


Département d’Informatique, FST Errachidia
a.elallaoui@umi.ac.ma

Année universitaire :2022/2023


29
Segmentation d’Images
Segmentation basée Segmentation
Régions: basée contours:
-Seuillage Operateurs
-Division fusion Gradients

Representation Representation
interne externe 30
Segmentation par seuillage

• Seuillage : opération qui consiste à réaliser des tests sur


une fonction T : T=T[x,y, v(x,y), f(x,y)]
– f(x,y) niveau de gris du pixel (x,y)
– v(x,y) exprime une propriété locale en ce point(voisinage)

• Seuillage global : T dépend seulement de f(x,y)


• Seuillage local : T dépend de f(x,y) et de v(x,y)
• Seuillage dynamique : dépend des coordonnées spatiales x and y
en plus de ses propriétés locales.

31
Seuillage Global
h(l)
Méthode Mode

Adaptée aux images ayant des


objets distincts du fond,
l’histogramme des niveaux de
gris va être bimodal. S l

Seuillage par borne supérieure


255 si f ( x, y )  Ss
fs (x, y) = {
0 si f ( x, y )  Ss
Seuillage par borne inférieure
0 si f ( x, y )  Si
fs (x, y) = { 32
255 si f ( x, y)  Si
Seuillage global: Méthodes
optimales
Méthode de Ridler et Calvard

1- Prendre une estimation initiale du seuil t, e.g., on doit utiliser


la moyenne des niveaux de gris de toute l’image.
2- segmenter l’image en 2 classes 1 et 2 en utilisant t : affecter
tous les pixels ayant des niveaux de gris plus petits que t à 1 et
les autres à 2 .
3- Calculer la moyenne des niveaux de gris Z et les nombres de
pixels n1 et n2 à l’intérieur des classes 1 et 2 respectivement.
4- Calculer la nouvelle valeur du seuil : 1
t= (n1Z1 + n 2 Z 2 )
n1 + n 2
5- Répéter les étapes 2 , 3 et 4 jusqu’à convergence, c-à-d jusqu’à
ce que la valeur de t stable. 33
Méthode de Lloyd
La méthode de Ridler et Calvard précédente est fortement
liée aux valeurs initiales, en effet, différentes valeurs
initiales peuvent mener à différentes solutions pour la
valeur du seuil
Lloyd considère une modification de la méthode de
sélection itérative du seuil, il remplace l’étape de calcul
du seuil (4) de la méthode de Ridler et Calvard par :
1 2 n2
t = ( Z1 + Z 2 ) + log( )
2 ( Z1 − Z 2 ) n1
Où  21 =  22 =  2

2 1 ( Z1 − Z 2 ) 2
 =
2 log(n1 + n2 ) 34
Méthode d’Ostu

L’opération de seuillage est un partitionnage des pixels de


l’image en 2 classes C0 et C1 (objet et fond) au niveau de
gris t, qui sont :
C0 = { 0, 1, . . . ,t } et C1 = { t+1, t+2, . . . , l-1 }

Un seuil optimal peut être déterminé en maximisant


l’un des critères suivant par rapport à t :
 2B  2B  2T
= 2 = 2 et = 2
w T w
2 1 ( Z1 − Z 2 ) 2
 = 35
2 log(n1 + n2 )
Méthode d’Ostu
Des trois critères au dessus,  est le plus simple. Le seuil t*
optimal est : *
t = Arg Max
tG

l −1 l −1
 =  (i −  T ) pi
2
T
2
 T =  i  pi
i= 0 i= 0
t
 2B = w0 w1 (  1  0 ) 2 w0 =  pi w1 = 1 − w0
i= 0

T − t t t
1 = 0 =  t =  i  pi
1− w w0 i= 0
0
ni
pi =
 ni
i

Matlab :
I= imread(‘coins.png’); [counts, x]=imhist(I,16);
T=otsuthresh(counts);
Bw= imbinarize(I,T); imshow(Bw); 36
Méthode de Pun.
Soit t la valeur du seuil et soient 2 entropies a posteriori

t
H = −  pi log e pi
'
b
i= 0
l −1
H = −  pi log e pi
'
w
i = t +1

Où Hb’ et Hw’ sont respectivement, les mesures de l’information


à posteriori associé avec les pixels noirs et blancs après seuillage.
Pun propose de déterminer le seuil optimal en maximisant la limite
supérieure de l’entropie à postériori :

H’= Hb’ + Hw’


37
Méthode de Pun.
Pun a montré que la maximisation de H’ est équivalente
à maximiser la fonction d’évaluation f(t) par rapport à t :
Ht log e pt  Ht  log e (1 − pt )
f (t ) = + 1 −
H T log e max p0 ,..., pt   H T  log e max pt +1 ,..., pl −1 

t
H t = −  pi log e pi
i= 0
l −1
H T = −  pi log e pi
i= 0
t
pt =  pi
i= 0

38
Seuillage local

Dans le seuillage local, l’image originale est subdivisé en des


petites sous images et un seuil est déterminer pour chacune de
ces sous images. Ceci entraîne une image seuillée ayant des
discontinuités de niveau de gris aux limites entres 2
différentes sous images.
Le seuil de la région peut être déterminé par soit la
méthode point dépendante ou région dépendante. Une
technique de lissage est ensuite appliqué pour éliminer les
discontinuités.

39
Méthode de Chow et Kaneko
L’image originale est subdivisée en des sous images 7x7 et un
seuil est calculé pour chaque sous image ayant un histogramme
de niveau de gris bimodal. Par contre le seuil n’est pas calculé
pour une sous image à histogrammes non bimodal. Le seuil
pour une telle sous image est interpolé à partir des sous images
voisines.
Pour les sous images ayant des histogrammes
bimodaux, le seuil est calculé de la façon suivante :
Premièrement, l’histogramme des niveaux de gris pour les sous
images est approximé par la somme de 2 distributions
gaussiennes. Le seuil est obtenu en minimisant l’erreur de
classification par rapport à la valeur du seuil.
40
Méthode de Fernando et Monro

Ils suggèrent une nouvelle méthode de seuillage locale.


L’image originale est subdivisé en 16 sous images non
chevauchés, ensuite la technique de seuillage entropique de Pun
[ ] est appliquée pour déterminer la valeur du seuil pour
chacune de ces sous images. Finalement, l’image seuillée
entière est filtrée par un filtre passe-bas pour éliminer les
discontinuités aux bords des sous images.

41

Vous aimerez peut-être aussi