You are on page 1of 12

Dtection de contours

1
Chapitre III : Dtection de contours
La dtection de contour et la segmentation des images sont probablement les domaines qui
ont reu la plus grande attention de la part de la communaut de traitement des images. On a
pu recenser ainsi plus de 4000 rfrences sur ce sujet depuis 1970. On ne sera donc pas
surpris de trouver ici des mthodes extrmement varies, s'appliquant parfois des domaines
bien prcis. Ceci est en grande partie d la nature trs intuitive du contour qui apparat trs
naturellement comme l'indice visuel idal dans la plus grande partie des situations.
Trs schmatiquement, les contours sont les lieux de variations significatives de l'information
niveaux de gris (il y a trs peu de travaux sur les contours dans les images couleurs ou multi-
spectrales). Dans cette approche, on suppose que l'image est une mosa que de rgions
parfaitement homognes. C'est dire que les contours recherchs sont de type crneaux. De
plus, la transition tant stricte, un contour doit tre une chane de pixels d'paisseur 1. Cette
restriction sur la nature du contour a t impose dans un premier temps pour des raisons de
formalisation mathmatique. Il est possible de construire des processus capables d'extraire
d'autres types de contours comme par exemple des valles ou des toits. Cependant, il n'existe
pas l'heure actuelle de processus complet et gnral qui pourrait extraire tous les types de
contour.
III.1 Les mthodes drivatives
La notion de contour tant relie celle de variation, il est vident qu'une telle dfinition nous
amne tout naturellement vers une valuation de la variation en chaque pixel. Une variation
existera si le gradient est localement maximum ou si la drive seconde ( dfinir dans un
espace bi-dimensionnel) prsente un passage par zro. Les principaux algorithmes connus
(Sobel, Prewitt, Kirsh, Canny, Driche, ...) se focalisent sur ce premier aspect du contour.
Il existe moins de travaux sur la formalisation de la deuxime partie consistant passer d'une
mesure locale de variations des chanes de points d'paisseur 1. C'est pourtant cette
deuxime partie qui fait souvent la diffrence et la qualit visuelle d'un rsultat.
Dtection de contours
2
Les mthodes drivatives s'appuient sur la constatation que les contours d'image sont traduits
gnralement par les transitions rapides de l'image, et que les variations lentes seront
limines par drivation. Les contours des objets dans des images de dimension quelconques
(images naturelles 2D, images mdicales 2D et 3D) correspondent le plus souvent aux
extrma locaux du gradient ou aux zro du laplacien de la fonction de niveaux de gris (Figure
1).
variation lente
transition rapide
Figure 1 : Une illustration de la notion de contour
III.1.a : Rappels sur le filtrage linaire
Filtrer signifie convoluer une image I(x,y) avec une fonction f(x,y) appele rponse
impulsionnelle (ou oprateur de convolution) du filtre. Dans le cas continu, l'image filtre est
donne par :

+

+

' ' ) ' , ' ( ) ' , ' ( ) , )( ( ) , ( dy dx y y x x I y x f y x I f y x I f
Dans le cas discret et pour prendre l'exemple simplifi d'une image carre, les domaines de I
et de f sont borns. Le domaine de I est [-N/2,+N/2] si N dsigne la taille de l'image et le
domaine de f est [-K/2,+K/2] avec ncessairement KN. La convolution s'crit alors :
On notera que le filtrage linaire consiste simplement remplacer chaque niveau de gris par
une combinaison linaire des niveaux de gris des points voisins.
Dtection de contours
3
III.1.a : Le rehaussement
Un oprateur de rehaussement vise remplacer le pixel central par la somme des diffrences
avec ses voisins. Un exemple de filtre de rehaussement figure ci-dessous :
0 -1 0
-1 5 -1
0 -1 0
Comme pour le filtres de moyenne, il est ncessaire de normaliser le rsultat. Cependant, le
rsultat peut tre ngatif, il convient alors d'y ajouter une constante (128 dans le cas prsent)
III.1.b : Les filtres troits
Ce sont des filtres de drive premire, et l'on cherche alors le maximum de leur rponse.
Leur prototype est le filtre de gradient qui se calcule gnralement sur 3 points.
- Le filtre de gradient
Le gradient, en un pixel d'une image numrique, est un vecteur caractris par son amplitude
et sa direction. L'amplitude est directement lie la quantit de variation locale des niveaux
de gris. La direction du gradient est orthogonale la frontire qui passe au point considr.
La mthode la plus simple pour estimer un gradient est donc de faire un calcul de variation
monodimensionnelle, i.e. en ayant choisi une direction donne. On a alors le schma suivant :
) , )( ( ) , ( y x W I y x G d d
o W
d
dsigne l'oprateur de drivation dans la direction d et * le produit de convolution.


+ +
m
m i
n
n j
d d j i W i y i x I y x G ) , ( ) , ( ) , (
Dans cette version discrte, la taille de cet oprateur est donne par le couple (m,n). Sauf cas
trs particulier, on utilise toujours m = n.
Il existe de trs nombreux oprateurs diffrents ( Roberts, Sobel, Prewitt, Kirsch, ...) qui ont
globalement les mmes proprits. Nous allons les dtailler dans les pages suivantes
Le gradient tant un vecteur, l'approche la plus classique pour estimer le gradient consiste
choisir deux directions privilgies (naturellement celles associes au maillage, i.e. ligne et
colonne) orthogonales, sur lesquelles on projette le gradient. A partir de deux calculs
identiques celui prsent ci-dessus, on peut donc obtenir une connaissance parfaite du
gradient :
Le gradient d'une image se calcule comme suit :
x
y x I
y x I
f
x

) , (
) , ( et
y
y x I
y x I
f
y

) , (
) , (
Dtection de contours
4
En chaque point (x,y) de l'image, on peut donc calculer le vecteur gradient. Sa direction
maximise la drive directionnelle et sa norme est la valeur de cette drive. On obtient la
drive de I dans une direction quelconque d
r
partir des deux drives directionnelles
dfinissant le gradient x I et y I de la manire suivante : d I L
d
r
r

En dveloppant la formule de Lagrange au premier ordre, la drive en un point x d'une
fonction f s'obtient par l'approximation suivante :
2
) 1 ( ) 1 (
) ( '
+

x f x f
x f
Applique une image, considre comme une fonction de deux variables, on peut dfinir
deux drives partielles, suivant x (colonnes) et suivant y (lignes). Les masques
correspondants figurent sur la figure 2.
0 0
0 0 0
0
0
-1 -1
0 0
0 0 0
0
0
-1 -1
0 -1
0 -1 0
0
0
0 0
0 -1
0 -1 0
0
0
0 0
Drive horizontale (
x
y x I

) , (
) Drive verticale (
y
y x I

) , (
)
Figure 2 : Le filtrage gradient
La drivation accentuant le bruit (pixels parasites de rpartition alatoire), des filtres drivs,
plus robustes, on t proposs :
- Filtre de Roberts
Calcul sur 4 points, ce filtre consiste en l'application du double masque suivant :
1
-1
1
-1
1
-1 0
0
0
0
En pratique, le filtre de Roberts se calcule de la faon suivante :
Roberts[x][y] = abs(I[x][y]-I[x+1][y+1]) + abs (I[x+1][y]-I[x][y+1])
Dtection de contours
5
- Le filtre de Prewitt
Calcul sur 9 points, ce filtre effectue une moyenne locale sur 3 points en mme temps que la
drivation. Il est dfini par le double masque suivant (normalis par un facteur de 1/3) :
0
0
0 1 -1
-1
1
0 0 0
1
1 -1
-1
-1 -1
1 1
Figure 3 : Masques de Prewitt horizontal et vertical
- Le filtre de Sobel
Egalement calcul sur 9 points, ce filtre est une variante du filtre de Prewitt mais permet de
privilgier le calcul suivant certaines directions (horizontale, verticale, obliques). Les filtres
sont donc les suivants (Figure 4):
0
0
0 2 -2
1
1 -1
-1
0
0
0 2 -2
1
1 -1
-1
-2
2
0 0 0
-1 -1
1 1
-2
2
0 0 0
-1 -1
1 1
1
-1
0 1 -1
0 2
0 -2
1
-1
0 1 -1
0 2
0 -2
Figure 4 : Masques de drivation de Sobel dans les directions horizontale, verticale et oblique
Il est important de noter que l'utilisation d'un facteur de normalisation (1/4 en ce qui concerne
ces filtres) doit tre introduit si l'on veut rester rigoureux.
- Le filtre de Kirsch
Il s'agit de la dernire variante "classique du filtrage gradient. Le facteur de normalisation
utiliser est ici 1/15.
-3
-3
0 5 -3
5
5 -3
-3
-3
5
0 -3 -3
-3 -3
5 5
-3
5
0 -3 -3
-3 -3
5 5
Ces filtres sont certes moins prcis que le filtre gradient "pur" mais sont plus fiables de par
leur robustesse. Il reste nanmoins utile de les faire prcder de filtres locaux dbruiteurs, tels
le filtre mdian ou le filtre de Nagao.
Les contours obtenus l'aide des filtres de gradient sont toutefois d'une qualit mdiocre et ne
peuvent en rgle gnrale tre utiliss tels quel car ils sont :
Dtection de contours
6
- bruits
- pais
- interrompus
- non ferms
Ces dfauts peuvent tre compenss par des filtrages ultrieurs relativement simples
(seuillages, filtrages morphologiques et logiques) mais dont l'enchanement est souvent
dlicat.
Ces mthodes se caractrisent par ailleurs par une grande rapidit et un faible cot, du fait de
l'aspect local de ces filtres.
III.1.c : Les filtres larges
Une frontire est un lieu de variation. On peut donc la localiser par la recherche du maximum
de la drive premire (approche base sur le calcul du gradient). On peut aussi rechercher le
passage par zro de la drive seconde (galement appel zro-crossing).
Dans le cas d'une image, il n'existe pas une drive seconde unique mais 4 drives partielles
(selon x, y, xy et yx). En pratique, on lve cette ambigu t en ayant recours l'oprateur
Laplacien qui fait la somme des deux drives partielles principales.
Les filtres larges recherchent donc les passages par zro de la drive seconde du niveau de
gris. Ils sont prcds par des filtres passe-bas trs large support (10x10 ou 30x30 pixels)
car ils sont trs sensibles au bruit.
La drive seconde peut tre obtenue par un laplacien ou approxime par des diffrences de
filtres de dimensions diffrentes.
Avec la mme approximation que pour les filtres troits, on peut dfinir les drives partielles
du second ordre grce aux filtres suivants :
0 0
0 0 0
-2
0
1 1

0 1
0 1 0
-2
0
0 0
Drive horizontale (

) , (
x
y x I

) Drive verticale (

) , (
y
y x I

)
Figure 5 : Le filtrage par drive seconde
Dtection de contours
7
L'oprateur laplacien donne une approximation directe de la somme des drives secondes, ce
qui peut tre obtenu avec une matrice qui est la somme des deux prcdentes (Figure 6a). Des
variantes de ce filtre existent, bases sur d'autres approximations (Figures 6b et 6c).
0 1
0 1 0
-4
0
1 1

-1
8 -1
-1 -1
-1 -1 -1
-1

0 -1
1 1
-1
0
-1 -1
0
0
0
0
1 1
0 0
(a) (b) (c)
Figure 6 : Masques d'approximation du Laplacien
Bien que trs sensible au bruit le laplacien est galement utilis pour dtecter des contours,
caractriss par le passage zro de la drive seconde. La figure 7 illustre la dtection de
contours selon les mthodes de Sobel et du Laplacien :
Figure 7 : Image originale, filtrage de Sobel et filtrage Laplacien
Comme nous l'avons vu prcdemment, les filtrages gradient et surtout le laplacien sont trs
sensibles au bruit, ce qui justifie l'emploi de filtres dbruiteurs. A titre d'exemple, la figure 8
illustre l'emploi de tels filtres en pr-traitement.

Image originale Filtrage de Sobel Filtre de Prewitt

Mdian x6 Filtrage de Sobel Filtre de Prewitt

Image originale Filtre Gauss x6 Filtre de Laplace
Dtection de contours
8
Figure 8 : Dbruitage et dtection de contours
Afin de limiter les rponses dues au bruit de l'image I, elle est pralablement filtre par un
filtre G. On obtient alors, grce aux proprits de l'oprateur produit de convolution :
Les oprateurs de filtrage et de drivation se font donc en une seule tape de calcul. Le plus
souvent, on fait appel un filtrage Gaussien :
dont le Laplacien est :
plus connu sous le nom de "chapeau mexicain" illustr sur la figure 9
Figure 9 : Laplacien de la fonction de Gauss
Cette fonction sert de modle au fonctionnement de la cellule ON/OFF, base de notre systme
visuel. Le paramtre sert a rgler la rsolution laquelle les contours sont dtects. Son
choix est trs difficile a priori car il est peu probable qu'une valeur unique permette de
reprsenter efficacement toutes les rsolutions prsentes dans une image (surtout pour les
images naturelles).
Dans le cas discret, la plus simple approximation du Laplacien d'une Gaussienne est le filtre
suivant connu sous le nom de masque Laplacien :
-1
-1
8 -1 -1
-1 -1
-1 -1
-1
-1
8 -1 -1
-1 -1
-1 -1
Dtection de contours
9
III.2 Vers les points de contour
Il est ais de remarquer que le calcul du gradient ou du laplacien, bien que constituant la
partie essentielle de la dtection des contours, ne fournit pas directement les points de
contour. En effet, dans les deux cas, deux tapes supplmentaires sont ncessaires. Nous
dcrivons brivement ces traitements communs tous les oprateurs.
Soit I(x,y) une image.
Soit G(x,y) le gradient de I au point (x,y) : )) , ( ), , ( ( ) , ( y x I y x I y x G y x
Soit ) (I le laplacien de I au point (x,y).
III.2.a : Approche gradient
Dans le cas d'une approche drive premire, on dispose donc de la valeur du gradient en tout
point de l'image, soit donc de la fonction G. Dans les premires approches envisages,
l'extraction des points de contour s'effectuait par slection des points de norme de gradient
leve grce aux deux tapes suivantes :
Le gradient tant un vecteur, l'approche la plus classique pour estimer le gradient consiste
choisir deux directions privilgies (naturellement celles associes au maillage, i.e. ligne et
colonne) orthogonales, sur lesquelles on projette le gradient. A partir de deux calculs
identiques celui prsent ci-dessus, on peut donc obtenir une connaissance parfaite du
gradient :
)) , )( ( ), , )( (( )) , ( ), , ( ( ) , ( y x W I y x W I y x G y x G y x G dy dx y x d
- Calcul de la norme du gradient
L'amplitude du gradient s'obtient alors par l'une des formules suivantes :
) , ( ) , ( ( ) , ( y x G y x G y x M y x + (norme euclidienne)
) , ( ) , ( ( ) , ( y x G y x G y x M y x +
)) , ( ), , ( (( ) , ( y x G y x G Max y x M y x
Et la direction du gradient est donne par:

,
_

) , (
) , (
) , (
y x G
y x G
Arctg y x d
x
y
Cette approche prsente comme principal inconvnient le fait que la direction peut prendre
n'importe quelle valeur relle. Ceci n'est pas en accord avec la nature discrte d'une image.
Que reprsente une frontire oriente 17 sur une grille ? C'est pourquoi on peut adopter un
schma diffrent adapt la nature discrte de l'image. Il s'agit alors de calculer le gradient,
Dtection de contours
10
non plus dans deux directions, mais dans toutes les directions possibles de l'image : 0, 45,
90, 135. On peut se contenter de ces 4 directions. On a alors :
Pour l'amplitude : )) , ( ( ) , ( 135 , 90 , 45 , 0 y x m Max y x m d d
Pour la direction : )) , ( ( arg ) , ( y x m Max y x d d d
L encore, on peut imaginer plusieurs types de masques ( Sobel, Prewitt, Kirsch, ...).
- Slection des points de fort gradient
On dtermine les points tels que :
s y x N > ) , (
o s est un seuil fix priori.
Le principal inconvnient de cette approche est qu'elle est inefficace dans le cas d'images o
la norme du gradient aux points de contour varie fortement selon les parties de l'image. En
effet, il n'existe alors pas de seuil s permettant d'obtenir les vrais points de contours sans
slectionner aussi ceux dus au bruit.
Un moyen de tourner cette difficult est d'extraire non pas les points de norme de gradient
lev mais les extrma locaux de la norme du gradient. Une mthode efficace consiste
dterminer les maxima de la norme du gradient dans la direction du gradient. Ces extrema
correspondent aux passages par zro de la drive de la norme du gradient, dans la direction
du gradient. Dans une deuxime tape, on limine les points de norme de gradient faible avec
un seuillage par hystrsis. Ce type de seuillage permet l'obtention de points de contour bien
connects entre eux. Il faut cependant noter qu'on utilise une proprit topologique : la
connexit. On obtient donc les deux traitements suivants :
- Extraction des extrma locaux du gradient
Soit M un point de gradient G(M) et d une distance seuil (par exemple d=1). Soient M
1
et M
2
Deux point de la droite passant par M et de vecteur directeur G(M), situs une distance d de
M. Par convention , M
1
est pris dans le sens du gradient et M
2
dans le sens inverse (Figure 9).
On dtermine une approximation du gradient aux points M
1
et M
2
par exemple par
interpolation linaire avec les points voisins.
M
M1
M2
G
(
M
)
M
M1
M2
G
(
M
)
M
M1
M2
G
(
M
)
Dtection de contours
11
Figure 9 : Extraction des extrma locaux du gradient
- Seuillage par hystrsis des extrma
Le principe du seuillage par hystrsis est de slectionner parmi tous les extrma dont la
norme de gradient est suprieure un seuil bas s
b
, ceux tels qu'il existe un chemin compos de
points dont la norme du gradient est plus leve que le seuil bas entre l'extremum considr et
un extremum de norme de gradient plus lev qu'un seuil haut s
h
. Le seuil haut s
h
et le seuil
bas s
b
peuvent tre dtermin par exemple partir de l'histogramme cumul des valeurs de la
norme des gradient aux extrma. L'algorithme se dcompose donc en deux tapes :
- Dtermination de deux images I
h
et I
b
telles que :
h h s M N M I < ) ( si 0 ) (
h h s M N M I ) ( si 1 ) (
b b s M N M I < ) ( si 0 ) (
b b s M N M I ) ( si 1 ) (
- Expansion en composantes connexes partir de tous les points tels que 1 ) ( M Ih
sur tous les points tels que 1 ) ( M Ib . Cette tape revient dterminer le graphe
d'adjacence des points de I tels que 1 ) ( M Ib , puis slectionner les composantes
connexes des n uds tels que 1 ) ( M Ih .
Le seuillage par hystrsis peut tre amlior en effectuant une expansion en composantes
connexes non pas dans toutes les directions, mais simplement dans la direction
perpendiculaire au gradient (direction du contour). Ceci permet de diminuer la valeur du seuil
bas sans introduire de contours parasites. Cette ide se rvle particulirement intressante
pour la dtection de contours 3D o une expansion dans toutes les directions marque parfois
de faux points de contours. Il est noter que ce type de traitement introduit de manire
implicite des contraintes sur la morphologie des contours et ne repose pas uniquement sur
l'information du "signal image" comme les tapes prcdentes. On retrouve donc ici la loi dite
de continuit introduite par les gestaltiques et voque au chapitre 1.
III.2.b : Approche Laplacien
Dans le cas d'une approche drive seconde, on dispose donc de la valeur du Laplacien en
chaque point, c'est dire de la fonction . On considre que les points de contour sont
localiss aux passages par zro du Laplacien. Si la calcul du Laplacien tait exact, il suffirait
de slectionner les points M tels que (M)=0. Mais comme gnralement l'approximation du
Laplacien est assez bruite, on dtecte les points o il change de signe. Une dernire tape de
seuillage est l encore ncessaire afin d'liminer les points de trop faible gradient. L'extraction
de ces passages par zro s'effectue classiquement en trois tapes :
- Dtermination d'une image de polarit
On calcule une image I
p
telle que :
Dtection de contours
12

'


>
0 ) ( si 1 ) (
0 ) ( si 0 ) (
M M I
M M I
p
p
- Dtection des passages par zro
On calcule une image I
z
telle que

'

sinon 0 ) (
dans 0 - 1 ou 1 - 0 n transitio une correspond si 1 ) (
M I
I M M I
z
p z
On remarque que le choix de la localisation du passage par zro au point de Laplacien positif
ou ngatif revient, comme pour l'extraction des extrma locaux, dfinir les points de contour
dans la rgion la plus claire ou la plus fonce.
- Seuillage des passages par zro
L'limination des passages par zro de faible norme peut s'effectuer par un algorithme de
seuillage quelconque. L'algorithme de seuillage par hystrsis dcrit pour l'approche gradient
peut par exemple tre utilis. On peut aussi se servir du fait que les passages par zro extraits
dfinissent des lignes fermes dlimitant les rgions de points connexes o le laplacien est
positif ou ngatif. Des mthodes reposant sur le suivi des ces frontires et sur un calcul local
du gradient peuvent tre utiliss.
Il faut noter que la mthodologie que nous avons dveloppe dans cette partie, tant pour le
filtrage que pour les traitements complmentaires, s'applique l'extraction de contours dans
des images de dimensions quelconques. Cette approche nous a donc permis de ramener ce
problme celui du lissage d'un signal 1D bruit.

You might also like