Vous êtes sur la page 1sur 14

Chapitre 5

Détection de contours

Sommaire
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2 Types de contours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3 Détection de contours basée sur le gradient . . . . . . . . . . . . . . . . 70
5.3.1 Dérivés partiels et gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.2 Filtres dérivatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4 Détection des contours basée sur la seconde dérivée . . . . . . . . . . . 78
5.4.1 Opérateur de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2 L’opérateur LoG (Laplacian of Gaussian) ou Marr et Hildreth . . . . . . . . 80

67
CHAPITRE 5. DÉTECTION DE CONTOURS

5.1 Introduction
Les bords et les contours jouent un rôle dominant dans la vision humaine et artificielle. Non
seulement ils sont pertinents, de point de vue visuel, mais il nous permet de décrire ou de reconstruire
une figure complète à partir de quelques lignes clés, comme le montre l’exemple de la Figure 5.1.
132 6. Edges and Contours
Mais comment les bords apparaissent-ils et comment les localiser techniquement dans une image ? Les

(a) (b)
Figure 6.1 Edges play an important role in human vision. Original image (a) and edge
Figure 5.1: L’importance
image (b). des contours dans la vision. (a) Image originale (b) image de contours .

as être
contours peuvent the first derivative of
grossièrement a function,
décrits commeand
deswepositions
thus start with this
d’image où concept to locale change
l’intensité
develop our first simple edge detector.
distinctement le long d’une orientation particulière. Plus le changement d’intensité local est fort,
plus la probabilité de détecter un contour est élevée. En mathématiques, la quantité de changement
par rapport à 6.2 Gradient-Based
la distance Edge
spatiale est connue Detection
comme la première dérivée d’une fonction, et nous
For simplicity,
commençons donc we firstpour
par ce concept investigate the situation
développer in only one
notre premier dimension,
détecteur de assuming
bord simple.
that the image contains a single bright region at the center surrounded by a dark
background (Fig. 6.2 (a)). In this case, the intensity profile along one image
line would look like the one-dimensional function f (x), as shown in Fig. 6.2 (b).
5.2 Types de contours
Taking the first derivative of the function f ,
df
f ′ (x)fréquemment
La détection des contours est une approche = (x) (6.1) les images en
utilisée pour segmenter
dx
fonction de changements brusques (locaux) d’intensité. Nous commençons par introduire plusieurs
results in a positive swing at those positions where the intensity rises and a
façons de modéliser
negative les swing
contours,where puis
thediscutons
value of the unfunction
certain dropsnombre d’approches
(Fig. 6.2 (c)). pour la détection des
contours. 712 ChapterUnlike in the continuous
10 Image Segmentation
case, however, the first derivative is undefined
for a discrete function f (u) (such as the line profile of a real image), and
a b c
some method is needed to estimate it. Figure 6.3 gives the basic idea, again
FIGURE 10.8
forto right,
From left the one-dimensional case: the first derivative of a continuous function at
models (ideal
position
representations) of x can be interpreted as the slope of its tangent at this position. One
a step, a ramp, and
a roof edge, and method for roughly approximating the slope of the tangent for a discrete
simple
function f (u) at position u is to fit a straight line through the neighboring
their corresponding
intensity profiles.
Figure 5.2: De function
gauche àvaluesdroite, f (u−1) and f (u+1),
des modèles (représentations idéales) d’une marche, d’une rampe et d’un
closely modeled as having an intensity ramp profile, such as the edge in Fig. 10.8(b).
contour de toit, et leurs profilsThe slope
df d’intensité
of the ramp correspondants.
f (u+1) − fproportional
is inversely (u−1) to the degree to
f (u+1) −which the edge is
f (u−1)
(u)this≈model, we no longer have a single
blurred. In = “edge point” along the profile. . (6.2)
duan edge point(u+1)
Instead, now is any−point
(u−1) 2 an edge segment
contained in the ramp, and
would then be a set of such points that are connected.
Les modèlesThe same method
de contours sont
A third can
type of be
edgeapplied
classés of course
enthefonction
is so-called in the
deedge,
roof leurs vertical
profils
having direction
d’intensité.
the characteristics toUn
illus- estimate
contour de marche
the first
est caractérisé par une derivative
transition along
base (width) of entre
thebeing
the edgedeux
i. e., by
niveaux
determined
along the image
d’intensité
the thickness and
columns.
trated in Fig. 10.8(c). Roof edges are models of lines through a region, with the
y-axis; sesharpness
produisant
of the idéalement sur la dis-
line. In the limit, when its base is one pixel wide, a roof edge is nothing more than
tance d’un pixel Figure a5.2a.
one-pixel-thick line running through a region in an image. Roof edges arise, for
example, in range imaging, when thin objects (such as pipes) are closer to the sensor
En pratique, les images
than thenumériques
background (suchont desThe
as walls). contours flous
pipes appear etandbruités.
brighter thus createDans
an de telles situations,
image similar to the model in Fig. 10.8(c). Other areas in which roof edges appear
les contours sont plus étroitement modélisés
routinely are in the digitization ofcomme ayant
line drawings unin profil
and also de rampe
satellite images, where d’intensité, tel que le
thin features, such as roads, can be modeled by this type of edge.
contour de la Figure 5.2b.It is not unusual to find images that contain all three types of edges. Although
blurring and noise result in deviations from the ideal shapes, edges in images that
Un troisième type de
are contour est and
reasonably sharp ce have
qu’on appelle
a moderate leofcontour
amount du toit,
noise do resemble ayant les caractéristiques
the charac-
teristics of the edge models in Fig. 10.8, as the profiles in Fig. 10.9 illustrate. What the
illustrées sur la Figure 5.2c.
models in Fig. 10.8 allow us to do is write mathematical expressions for edges in the
development of image processing algorithms. The performance of these algorithms
Il n’est pas rare de will
trouver
depend ondes images between
the differences contenant les and
actual edges trois typesuseddein devel-
the models contours. Bien que le flou
oping the algorithms.
et le bruit entraı̂nent des écarts par rapport aux formes idéales, les contours des images qui sont
Figure 10.10(a) shows the image from which the segment in Fig. 10.8(b) was extract-
ed. Figure 10.10(b) shows a horizontal intensity profile. This figure shows also the first
and second derivatives of the intensity profile. Moving from left to right along the
68 intensity profile, we note that the first derivative is positive at the onset of the ramp
and at points on the ramp, and it is zero in areas of constant intensity. The second
derivative is positive at the beginning of the ramp, negative at the end of the ramp,
zero at points on the ramp, and zero at points of constant intensity. The signs of the
CHAPITRE 5. DÉTECTION DE CONTOURS

raisonnablement nets et ont un niveau de bruit modéré ressemblent aux caractéristiques des modèles
de bords de la Figure 5.2, comme l’illustrent les profils
10.2 de la Figure
Point, 5.3.
Line, and Edge Detection 713

Figure 5.3: Une image


FIGURE A 1508 × 1970
10.9 montrant les profils
image de rampe(zoomed)
showing réelle (zoomée) (en (bottom,
actual ramp bas, à gauche), de(top,
left), step marche (en haut,
à droite) et deright), and roof
contour edge profiles. The profiles are from dark to light, in the areas enclosed by the
de toit.
small circles. The ramp and step profiles span 9 pixels and 2 pixels, respectively. The base of the
roof edge is 3 pixels. (Original image courtesy of Dr. David R. Pickens, Vanderbilt University.)
Ce que les modèles de la Figure 5.2 nous permettent de faire, c’est d’écrire des expressions mathé-
matiques pour
theles bords
dark dansside
or light le développement d’algorithmes
of an edge. Two additional de traitement
properties d’image.
of the second Les performances
derivative
arounddépendront
de ces algorithmes an edge are: des
(1) itdifférences
produces two values
entre for every
les bords edge
réels et in
lesanmodèles
image; and (2) pour déve-
utilisés
its zero crossings can be used for locating the centers of thick edges, as we will show
lopper les algorithmes.
later in this section. Some edge models utilize a smooth transition into and out of

a b
FIGURE 10.10
(a) Two regions of
constant Horizontal intensity
intensity profile
separated by an
ideal ramp edge.
(b) Detail near
the edge, showing
a horizontal First
intensity profile, derivative
and its first and
second
derivatives.

Second
derivative
Figure 5.4: (a) Deux régions d’intensité constante séparées par un bord de rampe idéal. (b) Détail près du
bord, montrant un profil d’intensité horizontal et ses première et seconde dérivées.
Zero crossing

La Figure 5.4a montre l’image à partir de laquelle le segment de la Figure 5.2b a été extrait. La
Figure 5.4b montre un profil d’intensité horizontale. Cette figure montre également les première et
deuxième dérivées du profil d’intensité.
On peut conclure que l’amplitude de la première dérivée peut être utilisée pour détecter la présence
d’un contour en un point d’une image. De même, le signe de la dérivée seconde peut être utilisé pour
déterminer si un pixel de contour se trouve du côté sombre ou clair d’un contour. 6/16/2017
DIP4E_GLOBAL_Print_Ready.indb 713 2:12:45 PM

Les modèles de contours de la Figure 5.2 sont exempts de bruit. Les segments d’image dans la
première colonne de la Figure 5.5 montrent des gros plans de quatre contours de rampe qui passent
d’une région noire à gauche à une région blanche à droite. Le segment d’image en haut à gauche est
exempt de bruit. Les trois autres images de la première colonne sont corrompues par un bruit gaussien
additif avec une moyenne nulle et un écart type de 0, 1, 1, 0 et 10, 0 niveaux d’intensité, respectivement.
Le fait qu’un si petit bruit visuel puisse avoir un impact aussi significatif sur les deux dérivés clés

69
CHAPITRE 5. DÉTECTION DE CONTOURS
10.2 Point, Line, and Edge Detection 715

FIGURE 10.11 First column: 8-bit images with values5.5


Figure in the range [0, 255], and intensity profiles
of a ramp edge corrupted by Gaussian noise of zero mean and standard deviations of 0.0, 0.1,
1.0, and 10.0 intensity levels, respectively. Second column: First-derivative images and inten-
sity profiles. Third column: Second-derivative images and intensity profiles.

utilisés pour détecter les contours est un problème à mettre en évidence pour la mise en œuvre un
algorithme de détection de contours(prétraitement par un lissage).
Généralement, on préconise trois étapes pour effectuer la détection des contours :

1. Lissage de l’image pour la réduction du bruit. La nécessité de cette6/16/2017


DIP4E_GLOBAL_Print_Ready.indb 715
étape est illustrée par
2:12:46 PM

les résultats des deuxième et troisième colonnes de la Figure 5.5.

2. Détection des points de contour. Comme mentionné précédemment, il s’agit d’une opération
locale qui extrait d’une image tous les points qui sont des candidats potentiels aux points de
contours.

3. Localisation des contours. L’objectif de cette étape est de sélectionner parmi les points can-
didats uniquement les points qui sont membres de l’ensemble de points comprenant un contour.

5.3 Détection de contours basée sur le gradient


Pour simplifier, nous allons étudier tout d’abord le contour 1D, en supposant que l’image contient
une seule région lumineuse au centre entourée d’un fond sombre (Figure 5.6a)).
Dans ce cas, le profil d’intensité le long d’une ligne d’image ressemblerait à la fonction unidimen-
sionnelle f (x), comme le montre la Figure 5.6b. En prenant la première dérivée de la fonction f , se

70
CHAPITRE 5. 6.2 Gradient-Based Edge Detection
DÉTECTION DE CONTOURS 133

f (x)
(b)

0 x

f ′ (x)

0 x
6.2 Gradient-Based Edge Detection 133

(a) (c)
Figure 6.2 Sample image and first derivative in one dimension: original image (a), horizon-
Figure 5.6: tal intensity
Échantillon profileet
d’image along thedérivée
première
f (x) center image
1D : line
(a)(b), and originale
image first derivative f ′ (x)
, (b) (c). d’intensité
profil horizontale
0
f (x)
f (x) le long de la ligne centrale de l’image et (c) première dérivée f (x) . (b)
f (u) f (u)

traduit par une variation positive aux positions où l’intensité monte et une positive négative lorsque
0 x
la valeur de la fonction diminue (Figure 5.6c) :
df (x)
(x) =
0
f ′f(x) dx

La première dérivée d’une fonction continue


0 à la position x peut être interprétée comme
x étant la
u−1 u Une
pente de sa tangente à cette position. u+1 méthode simple pouru−1 u u+1 la pente de la tangente
approximer
pour une fonction discrète f (u) à la position u est d’ajuster une ligne droite à travers les valeurs des
Figure 6.3
(a)Estimating the first derivative of a discrete function. The slope of the straight (c)
f (u −line
fonctions voisines(dashed) 1) between
et f (uthe
+ neighboring
1)(Figurefunction
5.7) : values f (u−1) and f (u+1) is taken as the
Figure 6.2 Sample
estimate image
for the slope andtangent
of the first derivative in one
(i. e., the first dimension:
derivative) original image (a), horizon-
at f (u).
(u) f (u+1)−f (u−1) line f(b),
tal intensity profile f (x) df along
du ≈the center image
(u+1)−(u−1) = (u+1)−f (u−1)
and first
2
derivative f ′ (x) (c).
6.2.1 Partial Derivatives and the Gradient
A derivative of af (u)
multidimensional function taken along one of its coordinate
f (u)
axes is called a partial derivative; for example,
∂I ∂I
(u, v) and (u, v) (6.3)
∂u ∂v
are the partial derivatives of the image function I(u, v) along the u and v axes,
respectively.1 The function
⎡ ⎤
∂I
(u, v)
u−1 u u+1 ∇I(u, v) = ⎣ ∂u ⎦ u−1 u u+1 (6.4)
∂I
∂v (u, v)

1 Figure 5.7: Estimation de la première dérivée d’une fonction discrète.


Figure ∂6.3 Estimating
denotes the derivative
the partial first derivative
or “del”of operator.
a discrete function. The slope of the straight
(dashed) line between the neighboring function values f (u−1) and f (u+1) is taken as the
La mêmeestimate
méthodefor the slope
peut of the
bien sûrtangent (i. e., the first
être appliquée derivative)
dans le sensat vertical
f (u). pour estimer la première
dérivée le long de l’axe y.
6.2.1 Partial Derivatives and the Gradient
5.3.1 Dérivés partiels
A derivative et gradient function taken along one of its coordinate
of a multidimensional
axes is called a partial derivative; for example,
Une dérivée d’une fonction multidimensionnelle prise le long d’un de ses axes de coordonnées est
∂I
appelée dérivée partielle sont les dérivées partielles ∂I
(u, v) andde la fonction
(u, v) d’image I(u, v) le(6.3)
long de u et v
∂u ∂v
respectivement est :
are the partial derivatives of the image function
∂I(u,v) ∂I(u,v)
I(u, v) along the u and v axes,
1
respectively. The function ∂u et ∂v
⎡ ⎤
La fonction ∇I(u, v) est appelé vecteur de gradient ∂I de la fonction I(u, v) :
" (u, v) #
∇I(u, v) = ⎣ ∂u∂I(u,v) ⎦ (6.4)
∇I(u, v) = ∂v
∂I ∂u
(u,
∂I(u,v)
v)
∂v
1
∂ denotes the partial derivative or “del” operator.
Le module du gradient|∇I(u, v)| est invariant en rotation d’image.
r 2  2
|∇I(u, v)| = ∂I(u,v)
∂u + ∂I(u,v)
∂v

|∇I(u, v)| est la base de nombreuses méthodes pratiques de détection des contours.

71
CHAPITRE 5. DÉTECTION DE CONTOURS

5.3.2 Filtres dérivatifs


Les composantes de la fonction de gradient ne sont que les premières dérivées des lignes d’image
et des colonnes le long des axes horizontal et vertical, respectivement. L’approximation des premières
dérivées horizontales peut être facilement mise en œuvre par un filtre linéaire :
f (u+1)+0·f (u)+f (u−1)
HxD = 0.5 · [−1 0 1] ⇔ 2

Où les coefficients −0, 5 et +0, 5 s’appliquent respectivement aux éléments d’imageI(u − 1, v) et I(u +
1, v). Notez que le pixel central I(u, v) lui-même est pondéré avec le coefficient zéro (0) et est donc
ignoré. De même, la composante verticale du gradient peut être calculée avec le filtre linéaire :
 
−1
 
HyD = 0.5 ·  0  ⇔ f (u,v+1)+0·f (u,v)+f
2
(u,v−1)

+1
6.3 Edge Operators 135
La Figure 5.8 montre les résultats de l’application des filtres de gradient définis précédemment. Le

(a) (b)

(c) (d)

Figure 6.4 Partial derivatives of a two-dimensional function: synthetic image function I (a);
approximate first derivatives in the horizontal direction ∂I/∂u (b) and the vertical direction
Figure 5.8: Dérivées partielles d’une fonction bidimensionnelle : (a) image synthétique I ;(b) premières dérivées
∂I/∂v (c); magnitude of the resulting gradient |∇I| (d). In (b) and (c), the lowest (negative)
∂I(u,v) ∂I(u,v)
approximatives dans la direction horizontale ∂u (c) la direction verticale ∂v (d) module du gradient ré-
values are shown black, the maximum (positive) values are white, and zero values are gray.

sultant |∇I(u, v)|, les valeurs les plus faibles (négatives) sont affichées en noir, les valeurs maximales (positives)
sont blanches et les valeurspoints but also
nulles sontin grises.
the local direction of the edge. Both types of information
are contained in the gradient function and can be easily computed from the di-
rectional components. The following small collection describes some frequently
used,H D edge operators that have been around for many years and are thus
simple
filtre à gradient horizontal x réagit le plus fortement aux changements rapides le long de la direction
interesting from a historical perspective as well.
horizontale (c’est-à-dire aux contours verticaux) et de façon analogue, le filtre à gradient vertical HyD
réagit le plus fortement 6.3.1 Prewitt and
aux contours Sobel Operators
horizontaux.
Le gradient local de The edge operators
la fonction imageby Prewitt
est à and Sobel de
la base [10] nombreux
are two classicopérateurs
methods that classiques de détection
differ only marginally in the filters they use.
de contours. En pratique, ils ne diffèrent que par le type de filtre utilisé pour estimer les composantes du
gradient et la façon dont ces composantes sont combinées. Dans de nombreuses situations, on s’intéresse
non seulement module du contour mais aussi à sa direction locale. Les deux types d’informations sont
contenus dans la fonction de gradient et peuvent être facilement calculés à partir des composantes
directionnelles.

Opérateurs Prewitt et Sobel

Les opérateurs Prewitt et Sobel utilisent des filtres linéaires qui s’étendent sur trois lignes et trois
colonnes adjacentes respectivement.

72
CHAPITRE 5. DÉTECTION DE CONTOURS

L’opérateur Prewitt utilise les filtres qui calculent les composantes moyennes du gradient sur trois
lignes ou trois colonnes voisines, respectivement. Les filtres sont écrits sous une forme séparée :
       
−1 0 1 1 h i −1 −1 −1 h i −1
       
HxP =  −1 0 1  =  1  ∗ −1 0 1 et HyP =  0 0 0  = 1 1 1 ∗ 0 
−1 0 1 1 1 1 1 1

Cette dernière écriture nous montre que pour calculer le gradient sur l’axe des x on peut commencer
par un filtre moyenneur vertical puis par un filtre dérivateur horizontal et de la même manière sur
l’axe des y. Ceci est vrai en raison de la commutativité de la convolution linéaire.
L’opérateur Sobel est presque identique ; cependant, la partie de lissage attribue un poids plus
élevé au pixel central :
       
−1 0 1 1 h i −1 −2 −1 h i −1
       
HxS =  −2 0 2  =  2  ∗ −1 0 1 et HyS =  0 0 0 = 1 2 1 ∗ 0 
−1 0 1 1 1 2 1 1

Les estimations des composantes locales du gradient sont obtenues à partir des résultats du filtre
par une mise à l’échelle appropriée. Pour l’opérateur de Prewitt on a :
" #
1 (I ∗ Hxp ) (u, v)
∇I(u, v) ≈ 6 · 
I ∗ Hyp (u, v)

Pour l’opérateur de Sobel on a :


" #
1 (I ∗ Hxs ) (u, v)
∇I(u, v) ≈ 8 · 
I ∗ Hys (u, v)

Deux filtres gradient linéaire Hx et Hy produisent deux images à gradient, Dx et Dy, respectivement.
6.3 Edge
Ils sont utilisés pour Operators 137
calculer le module du contour E et l’orientation φ pour chaque position d’image
(u, v) (Figure 5.9).

Hx

$
Dx (u, v) Dx2 + Dy2 E(u, v)

I(u, v)

Dy
Dy (u, v) tan−1 Dx
Φ(u, v)

Hy

Figure 6.5 Typical process of gradient-based edge extraction. The two linear gradient filters
Hx and Figure 5.9:two
Hy produce Stratégie
gradientd’extraction desDcontours
images, Dx and basée sur un gradient.
y , respectively. They are used to compute
the edge strength E and orientation Φ for each image position (u, v).

Edge strength
Force et orientation and
des orientationL’amplitude du gradient mesure la force du contour, tandis
contours
que l’orientation
In thenous donnewe
following, unedenote
idée sur
thelescaled
sens et la direction
filter du contour.
results (obtained withDans
eithercethe
qui suit, nous
Prewitt
désignons les or Sobel
résultats operator)
du filtre obtenusasavec l’opérateur Prewitt ou Sobel par l’équation suivante :

Dx =DH =∗HI x ∗ I and


x x =yH=y H
et Dy D ∗ Iy ∗ I.
In both cases, the local edge strength E(u, v) is defined as the gradient magni-
Dans les deux cas, la force locale du contour E(u, v) est définie comme le module du gradient :
tude $q 2 2
E(u, v) = (D
E(u, v) = (u,v)
Dx (u, 2
v)) ++ (D (u,v)
Dy (u, 2
v)) , (6.13)
x y
and the local edge orientation angle Φ(u, v) is3
Et l’orientation local du contour l’angle
 φ(u,v) est :
−1 Dy (u, v)

Φ(u, v) = tan = Arctan Dy (u, v), Dx (u, v) . (6.14)
Dx (u, v)
73
The whole process of extracting the edge magnitude and orientation is summa-
rized in Fig. 6.5. First, the original image I is independently convolved with
CHAPITRE 5. DÉTECTION DE CONTOURS

 
Dy (u,y)
φ(u, v) = tan−1 Dx (u,v) = Arc tan (Dy (u, y), Dx (u, y))

L’ensemble du processus d’extraction de l’amplitude du bord et de l’orientation est résumé à la


Figure 5.9.
Tout d’abord, l’image originale I est convolué indépendamment avec les deux filtres de gradient
Hx et Hy , et ensuite la force de contour E et l’orientation φ sont calculées à partir des résultats du
filtre. 138 6. Edges and Contours

(a)

(b)

(c)

(d)

Figure 6.6 Edge strength and orientation obtained with a Sobel operator. Original images
(a), the edge strength E(u, v) (b), and the local edge orientation Φ(u, v) (c). The images in
Figure 5.10: Force et orientation des contours obtenues avec un opérateur Sobel. (a)Images originales (b),
(d) show the orientation angles coded as color hues, with the edge strength controlling the
intensité des contours E(u, v)
color(c et orientation
saturation (see Sec. 8.2.3 forlocale des bords
the corresponding φ(u, v) (d)Les images en montrent les angles
definitions).

d’orientation codés comme des teintes de couleur, la force des contours contrôlant la saturation des couleurs.

La Figure 5.10 montre la force et l’orientation des bords pour deux images de test, obtenues avec
les filtres Sobel et l’angle local d’orientation des contours φ(u, v).

Opérateur Roberts

En tant que l’un des plus simples, l’opérateur Roberts utilise deux filtres extrêmement petits de
taille 2 × 2 pour estimer le gradient directionnel le long des diagonales de l’image :
" # " #
0 1 −1 0
H1R = et H2R =
−1 0 0 1

Ces filtres répondent naturellement aux contours diagonaux mais ne sont pas très sélectifs à
l’orientation. Les deux filtres montrent de bons résultats sur une plage d’angles relativement large
(Figure 5.11). La force du contour local est calculée en mesurant le module du vecteur 2D résultant,
similaire au calcul du gradient mais avec ses composantes tournées à 45 deg (Figure 5.12).

74
2 × 2 for estimating the directional gradient along the image diagonals:
% & % &
0 1 −1 0
H1R = and H2R = . (6.16)
−1 0 0 1

These filters naturally respond to diagonal edges but are not highly selective
to orientation; i. e., both filters show strong results over a relatively wide range
CHAPITRE 5. DÉTECTION DE CONTOURS
of angles (Fig. 6.7). The local edge strength is computed by measuring the
length of the resulting 2D vector, similar to the gradient computation but with
its components rotated 45◦ (Fig. 6.8).

D1 = I ∗ H1R D2 = I ∗ H2R

Figure 6.7 Diagonal gradient components produced by the two Roberts filters.
140 6. Edges and Contours
Figure 5.11: Composantes du gradient diagonal produites par les deux filtres Roberts.
140 6. Edges and Contours
6.3.3 Compass Operators
y
The design of linear edge filters involves D a 1trade-off: the stronger a filter re-
sponds to edge-like structures, the more sensitive it is to orientation. In other
words, filters that are orientation-insensitive tend to respond to nonedge struc-
y
tures, while the most discriminating edge filters only respond to edges in a
D1 x
$
E= D12 + D22

D2 x
$
Figure 6.8 Definition of edge strength
E = D12 + D 2
Figure 5.12: Définition de la force des contours pourforl’opérateur
the Roberts operator. The edge strength
Roberts. La force de bord E(u, v) correspond
corresponds to the length of the vector obtained by adding the two orthogonal gradient
2 v)
E(u,

à la longueur du vecteur components


obtenu en ajoutant
(filter results) D1les
(u, v)deux
and D2composantes
(u, v). de gradient orthogonal (résultats du filtre)
D1 (u, v) et D2 (u, v) . D2
narrow range of orientations. One solution is to use not only a single pair of
Figurerelatively “wide” filters
6.8 Definition forstrength
of edge two directions
for the(such as theoperator.
Roberts Prewitt and
Thethe simple
edge strength E(u, v)
Opérateurs de Sobel operator
boussole
corresponds discussed
to the length of above) but a obtained
the vector larger set of
byfilters
addingwiththe
narrowly spaced
two orthogonal gradient
orientations.
components A classicDexample
(filter results) is the extended Sobel operator, which employs
1 (u, v) and D2 (u, v).
the following eight filters with orientations spaced at 45 : ◦
Les filtres discutés précédemment ont la particularité être mois sensible aux contours a divers
⎡ ⎤ ⎡ ⎤
narrow range
directions. Pour remédier −1 0une
à ce problème, 1 solution
ofS orientations. One solution
consiste −1 not only
is1 toà0use
utiliser a single pair
non seulement uneof seule paire
H0 = ⎣ −2 0 2 ⎦ S
H4 = ⎣ 2 0 −2 ⎦ , (6.17)
relatively
de filtres relativement “wide”
”larges” pourfilters for
deux
−1 two directions
0 directions
1 (such
(comme as the Prewitt
1 l’opérateur
0 −1 and the
Prewitt et simple
Sobel ), mais un
Sobel operator discussed
⎡ above)
⎤ but a larger ⎡ set of filters
⎤ with narrowly spaced
plus grand ensemble de filtres avec −2 des−1orientations
0 étroitement
2 1 0espacées. Un exemple classique est
orientations. A H1Sclassic
= ⎣ −1 example
0 1 ⎦ is the H extended
S
5 =
⎣ 1 Sobel
0 −1 ⎦operator,
, which employs
(6.18)
l’opérateur Sobel the
étendu, qui utilise
following les
0 huit
eight filters 2 filtres
1 with suivantsspaced
orientations avec des
at 45
0 −1 −2 orientations

: espacées de 45 deg :
⎡ ⎤ ⎡ ⎤
⎡ ⎣ −1 −2 −1 ⎦⎤ 1⎡2 1 ⎤
H2S = −1 0 00 01 H6S = ⎣ 0 0 10 ⎦ ,0 −1 (6.19)
H0 = ⎣ −2
S

1 02 12 ⎦

H S
4⎡
−1
= ⎣−2 −1
2 ⎤
0 −2 ⎦ , (6.17)
−1 0 −1
0 −21 0 1 12 0 −1
= ⎣ 1 0 −1 ⎦⎤
H3S ⎡ H7S = ⎣ −1 ⎡ 0 1 ⎦ . ⎤ (6.20)
−2 2−11 00 −2 −1 20 1 0
H1S = ⎣ −1 0 1⎦ H5S = ⎣ 1 0 −1 ⎦ , (6.18)
Only the results of four of the eight filters H0S , H1S , . . . H7S above must actually
0 1 2 0 −1 −2
be computed since the remaining four are identical except for the reversed sign.

For example, from
⎤ ⎡ ⎤
−1the −1that H4 = −H0 and the convolution
−2fact 1 2 being
1 linear
S S

(Eqn. (5.18)),
S ⎣ it follows that ⎦ S ⎣ ⎦
H2 = 0 0 0 H6 = 0 0 0 , (6.19)
1 I 2∗ H4S1 = I ∗ −H0S = −(I ∗ H0S−1
); −2 −1 (6.21)
⎡ ⎤ ⎡ ⎤
−1H−2
i. e., the result for 0filter 0 1 2S
4 is simply the negative result for filter H0 . The di-
S

= ⎣ D10 , D01 , .−1


H3S outputs
rectional . . D⎦
7 for the eight H
S
Sobel
7 = ⎣
filters
−1can thus ⎦.
0 be1computed (6.20)
2 1 0 −2 −1 0

Only the results of four5.13:


Figure of the eight
Huit filters
filtres 1 , . . . H7 above must actually
H0S , Hdirections
a divers S S

be computed since the remaining four are identical except for the reversed sign.
For example,
Seuls les résultats de quatrefrom
desthe
huitfact thatH
filtres S S andSthe convolution being linear
HS4S ,=H−H
0 1 ,. 0. . H7 ci-dessus doivent en fait être calculé
(Eqn. (5.18)), it follows that
car les quatre autres sont identiques à l’exception du signe inversé. Par exemple :
I ∗ H S = I ∗ −H S = −(I ∗ H S ); (6.21)
I ∗ H4S =4 I ∗ (−H0S ) 0= −(I ∗ H0S )0
i. e., the result for filter H S is simply the negative result for filter H0S . The di-
4
Le résultat du filtre H4S est simplement le négatif du résultat du filtre H0S .
rectional outputs D0 , D1 , . . . D7 for the eight Sobel filters can thus be computed
Les sorties directionnelles D0 , ..., D7 pour les huit filtres de Sobel sont illustrées par la Figure ??
La force du contour E S à la position (u, v) est définie comme le maximum des huit sorties de filtre :

E S (u, v) = max(|D0 (u, v)|, |D1 (u, v)|, |D2 (u, v)|, |D3 (u, v)|)

L’orientation locale du contour est définie par l’équation suivante :

75
6.3 Edge Operators 141
The edge strength E S at position (u, v) is defined as the maximum of the eight
filter outputs; i. e.,
CHAPITRE 5. DÉTECTION DE CONTOURS
as follows:
E S (u, v)  max D0 (u, v), D1 (u, v), D2 (u, v), D3 (u, v), D4 (u, v), . . . D7 (u, v)

= Smax |D0 (u, v)|, |D1S(u, v)|, |D2 (u, v)|, |D
S3 (u, v)| , S (6.23)
D 0 ← I ∗ H0 D 1 ← I ∗ H1 D 2 ← I ∗ H2 D 3 ← I ∗ H3
(6.22)
D4 ← −D0 D5 ← −D1 D6 ← −D2 D7 ← −D3 .
and the strongest-responding filter also determines the local edge orientation
as 5.14: Les sorties directionnelles D0 , ..., D7 pour les huit filtres de Sobel.
Figure
The edge strength E S at position (u, v) is defined as the maximum of the eight
π
filter outputs; i. e., ΦS∆
(u, v)  j , with j = argmax Di (u, v). (6.24)
φS (u, v) = π
4 j,
4
avec j = argmax 0≤i≤7
0≤i≤7 Di (u, v)

Un autre E Sopérateur de
(u, v) Another
max D0 (u,compass
boussole
classic v), D1 (u,
classique estv), Dis2proposé
celui
operator (u,
the v),
oneD 3 (u,
par v),by
D4Kirsch
Kirsch,
proposed (u,est
qui v),[27],
. . . which
D7 (u, basé
également v) sur
is also based
huit filtres directionnels avec
les
on eight
noyauxdirectional
suivants filters
(Figurewith the following
5.15) : Seuls
des huit filtres doivent
kernels:
quatre
= max |D (u, v)|, |D (u, v)|, |D (u, v)|, |D (u, v)| ,
0 1 2 3 (6.23)
⎡ ⎤ ⎡

−5 3 3 3 3 −5
and the strongest-responding
H0K = ⎣ −5 0 3filter also determines
⎦ H4K = ⎣ 3 the
0 −5local
⎦ , edge orientation
(6.25)
as −5 3 3 3 3 −5
⎡ ⎤ ⎡ ⎤
−5 −5 3 3 3 3
H1KS = ⎣ −5 π0 3⎦ H K = ⎣ 3 0 −5 ⎦ , (6.26)
Φ (u, v) 3 3 j ,3 with j5 = argmax
3 −5
D
−5i (u, v). (6.24)
4 0≤i≤7
⎡ ⎤ ⎡ ⎤
−5 −5 −5 3 3 3
H2K = ⎣ 3 0 0 ⎦ H6K = ⎣ 3 0 3 ⎦ , (6.27)
Another classic compass
3 3 operator
3 is the one proposed
−5 −5 −5 by Kirsch [27], which
is also based on eight⎡ directional
3 −5 −5 filters with the following
⎤ ⎡
3 3 3 kernels:

H3 = ⎣ 3 0 −5 ⎦
K
H7 = ⎣ −5 0 3 ⎦ .
K
(6.28)
⎡ 3 3 ⎤3 ⎡−5 −5 3 ⎤
−5 3 3 3 3 −5
H K = ⎣ −5
0 0 3⎦ HK = ⎣ 3
4de Kirsch. 0 −5 ⎦ , (6.25)
Again, because ofFigure 5.15: Huit filtres
the symmetries, only four of the eight filters need to be
−5 3 3 3 3 −5
applied and the results may be combined in the same way as described above
⎡ ⎤ ⎡ ⎤
forraison
être appliqués , en the extended
des −5 Sobel
−5 operator.
symétries, In practice,
3et les résultats this andêtre
peuvent other3“compass
3 combinés
3 de operators”
la même manière
show only
K minor
⎣ benefits
−5 Sobel
Hl’opérateur over
⎦ the simpler operators
K ⎣ described
3 0 −5 , earlier,
⎦ including (6.26)
que celle décrite pour 1 = 0 étendu.
3 H5 =
the small advantage of not requiring the computation of square roots (which is
3 3 3 3 −5 −5
considered ⎡a relatively “expensive”
⎤ operation). ⎡ ⎤
Détecteur de Canny
−5 −5 −5 3 3 3
L’algorithme de H K
2 =

détection3 contours
des ⎦
0 0 Canny est une K
= ⎣
H6 méthode 0 3 ⎦ utilisée
3 largement , (6.27)
en recherche.
3 3 est
Cette méthode de détection de contours −5critères
3 optimale pour les trois −5 −5 suivants :
⎡ ⎤ ⎡ ⎤
−5détecter
1. Détection : La probabilité3 de −5 des points de bord réels 3 doit
3 être
3 maximisée tandis que
= ⎣ faussement
H3Kdétecter
la probabilité de 3 0 −5 ⎦des points non = ⎣ −5
H7Kbordés 3⎦.
0 minimisée.
doit être Cela(6.28)
implique
3 3 3 du gradient.
de maximiser le rapport signal/bruit −5 −5 3
2. Un facteur de localisation des contours : les contours détectés doivent être très proches des bords
Again, because of the symmetries, only four of the eight filters need to be
réels.
applied and the results may be combined in the same way as described above
3. Nombre de réponses : un contour réel ne doit pas entraı̂ner plus qu’un contour détecté,
for the extended Sobel operator. In practice, this and other “compass operators”
c’est-à-dire minimiser les réponses multiples à un seul contour.
show only minor benefits over the simpler operators described earlier, including
L’algorithme
the small de détection
advantage desofcontours de Canny
not requiring thecomporte cinq étapes
computation :
of square roots (which is
considered
1. Lissage a de
: il s’agit relatively “expensive”
la première operation).Canny, dans laquelle l’image d’entrée est
étape de l’algorithme
lissée à l’aide d’un filtre gaussien pour éliminer le bruit. La Figure 5.16a est l’exemple d’image
d’entrée, utilisé pour montrer les étapes du détecteur de bord Canny, la Figure 5.16b est une
image lissée générée par un filtre gaussien.
2. Calcul du gradient : les contours doivent être marqués là où les gradients de l’image ont de
grandes amplitudes. Les gradients dans les directions x et y (Gx, Gy) sont calculés en utilisant un
masque de Sobel. La force des contours, c’est-à-dire l’amplitude du gradient, est ensuite calculée
en utilisant la distance euclidienne comme suit :
q
|G| = G2x + G2y

76
CHAPITRE 5. DÉTECTION DE CONTOURS

(a) (b)

(c) (d)

(e) (f)

Figure 5.16: Résultats des différentes étapes du détecteur de bord Canny.

La distance de Manhattan peut également être utilisée afin de réduire la complexité de calcul :

|G| = |Gx | + |Gy |

Le module du gradient |G|, peut déterminer les bords assez clairement. Cependant, les directions
des contours jouent un rôle important pour détecter plus clairement les contours plus larges. Les
directions des contours sont déterminées en utilisant :
|Gx |
θ = tan−1 ( )
|Gy |
Le gradient de l’image résultant, correspondant à l’image d’entrée lissée, est représentée sur la
Figure 5.16c.
3. Suppression des Non Maxima locaux :pour convertir les contours flous du gradient de
l’image (obtenus de l’étape 2) en contours nets, ce traitement est effectué. Ceci est réalisé en
considérant les contours uniquement aux maxima locaux et en rejetant toute autre chose (Fi-
gure 5.16d).
4. Double seuillage : la plupart des bords de l’image, obtenus à partir de l’étape de suppression
non maximale, sont de vrais bords présents dans cette image. Cependant, certains bords peuvent
être causés par du bruit ou des variations de couleur. Par conséquent, le mécanisme de double
seuillage est utilisé afin de détecter les vrais bords :
— Définissez deux seuils - L (seuil inférieur), H (seuil supérieur).
— Si la force du pixel de bord est inférieure à L, ce n’est un contour.

77
CHAPITRE 5. DÉTECTION DE CONTOURS

— Si la force des pixels de bord est supérieure à H, c’est un contour fort.


— Si la force de pixel bord entre L et H, c’est un contour faible.
Par conséquent, tous les contours plus forts que le seuil supérieur seraient marqués comme des
contours forts ; en revanche, les pixels de contour entre les deux seuils sont marqués comme
faibles, tandis que les pixels plus faibles que le seuil inférieur seront rejetés. La Figure 5.16e
montre l’image après un double seuil.
5. Suivi des bords par hystérésis : Tous les contours forts sont considérés comme les vrais
contours finaux. Cependant, les contours faibles ne doivent être considérés comme de vrais
contours que si ces contours sont connectés à des contours forts, car certains contours faibles
peuvent être le résultat de bruits ou de variations de couleur. L’idée de base est que les contours
faibles, en raison des vrais contours, sont beaucoup plus susceptibles d’être connectés directement
aux contours forts. Cela se fait via le processus de suivi des contours. Le suivi des contours est
implémenté par analyse BLOB (Binary Large OBject). Les pixels de contours sont divisés en
BLOB connectés en utilisant un voisinage à 8 connectés. Les BLOB contenant au moins un
pixel à contours fort sont ensuite conservés, tandis que les autres BLOB sont supprimés. La
Figure 5.16f montre le résultat final de la détection des contours à l’aide du détecteur de contour
de Canny.
Le détecteur de contours de Canny peut détecter les contours des images bruitées avec une bonne
précision car il supprime d’abord le bruit par un filtre gaussien. Il génère de large crête d’un pixel
en sortie en améliorant le signal par rapport au rapport de bruit par la méthode de suppression de
non maxima locaux. Dans l’ensemble, il offre une meilleure précision de détection des contours en
appliquant une méthode d’hystérésis à double seuillage et suivi des contours. Mais le détecteur de
Canny prend du temps et il est difficile de mettre en œuvre dans une solution en temps réel.

5.4 Détection des contours basée sur la seconde dérivée


La dérivée seconde d’une fonction mesure sa courbure locale. L’idée est que les contours peuvent
être trouvés à des positions des passages par zéro des dérivées secondes de la fonction d’image, comme
6.4 Other Edge Operators 143
illustré sur la Figure 5.17 pour le cas unidimensionnel.

(a)
f (x)

0 x

(b)
f ′ (x)

0 x

(c)
f ′′ (x)

0 x

zero crossing

Figure 6.9 Principle of edge detection with the second derivative: original function (a), first
Figure
derivative (b), 5.17:
and second La seconde
derivative dérivée
(c). Edge points d’unwhere
are located contour 1D.derivative
the second
crosses through zero and the first derivative has a high magnitude.

Comme les dérivées secondes


– First, ont généralement
edge operators tendance
only respond to local intensityàdifferences,
amplifierwhile
le bruit
our sur une image, un
visual system
pré-lissage est généralement is ableavec
appliqué to extend
des edges
filtresacross areas of appropriés.
passe-bas minimal or vanishing
contrast.
– Second, edges exist not at a single fixed resolution or at a certain scale but
78 over a whole range of different scales.

Typical small edge operators, such as the Sobel operator, can only respond to
CHAPITRE 5. DÉTECTION DE CONTOURS

5.4.1 Opérateur de Laplace


L’opérateur de Laplace ∇2 d’une fonction bidimensionnelle f (x, y) est défini comme la somme des
deuxièmes dérivées partielles le long des directions x et y :
 ∂ 2 f (x,y) ∂ 2 f (x,y)
∇2 f (x, y) = ∂2x + ∂2y

Comme pour la première dérivée, la seconde dérivée d’une d’image peuvent également être estimées
avec un ensemble de filtres linéaires simples. Là encore, plusieurs versions ont été proposées :
 
h i 1
∂2f ∂2f  
∂2x ≡ HxL = 1 −2 1 et ∂2y ≡ HyL =  −2 
1

Pour estimer les dérivées secondes le long des directions x et y, respectivement, on obtient le filtre
Laplace de bidimensionnel :
 
0 1 0
 
H L = HxL + HyL =  1 −4 1 
0 1 0
6.6 Edge Sharpening 149

(a) (b)

(c) (d)

Figure 6.13 Results of Laplace filter H L : synthetic test image I (a), second partial deriva-
tive ∂ 2 I/∂ 2 u in the horizontal
L direction (b), second partial derivative ∂ 2 I/∂ 2 v in the vertical
Figure 5.18: Résultats du filtre Laplace H .(a)image d’essai synthétique I (b), deuxième dérivée partielle
direction (c), and Laplace filter ∇2 I(u, v) (d). Intensities in (b–d) are scaled such that maxi-
∂2f ∂ 2 f respectively, and zero values
mally negative and positive values are shown as black and white,

∂2x
dans le sens horizontal (c), deuxième dérivée partielle ∂ 2 y dans le sens vertical (d) et filtre de Laplace
are gray.

∇2I(x,y) (d). Les intensités en (b – d) sont


for estimating mises
the second à l’échelle
derivatives along the xde
and telle sorte
y directions, que les valeurs maximales négatives
respectively,
et positives soient représentées combine to make the two-dimensional
respectivement en noir Laplace filter et les valeurs nulles en gris.
et blanc
⎡ ⎤
0 1 0
H L = HxL + HyL = ⎣ 1 −4 1⎦. (6.32)
La Figure 5.18 montre un exemple d’application du filtre Laplace HL à une image en niveaux de gris.
0 1 0

Le filtre de Laplace peut être écrit


Figure 6.13 showssous une
an example forme
of applying the linéaire :
Laplace filter H L
to a grayscale
image, where the pairs of positive-negative peaks at both sides of each edge are

I ∗ H L = I ∗ (HxL + HyL ) = (I ∗ HxL ) + (I ∗ HyL )

De façon analogue aux filtres à gradient, la somme des coefficients est nulle dans tout filtre de Laplace,
de sorte que sa réponse est nulle dans les zones d’intensité constante (plate) (Figure 5.18). D’autres
variantes courantes des filtres Laplace 3 × 3 pixels sont :
   
1 1 1 1 2 1
   
H8L =  1 −8 1  et H12
L
= 2 −12 2 
1 1 1 1 2 1

79
CHAPITRE 5. DÉTECTION DE CONTOURS

5.4.2 L’opérateur LoG (Laplacian of Gaussian) ou Marr et Hildreth


Comme dans le cas du gradient, on peut combiner le Laplacien avec un filtrage Gaussien pour
obtenir le Laplacien d’une Gaussienne :
— La Gaussienne lisse l’image et rend les contours flous, mais conserve leurs positions (selon σ).
— Le Laplacien détecte les passages par zéro au niveau des contours.
h i
h i x2 +y 2
2 2 −
1− x +y 2σ 2
LoG ∗ I = ∇2 ∗ G ∗ I = ∇2 G ∗ I Où LoG(x, y) = πσ 4 1− 2σ 2 e
726 Chapter 10 Image Segmentation

a b
2G
c d
FIGURE 10.21
(a) 3-D plot of
the negative of the
LoG.
(b) Negative of
the LoG
displayed as an
image.
(c) Cross section
of (a) showing y
x
zero crossings.
(d) 5 × 5 kernel
approximation to
2G
0 0 1 0 0
the shape in (a).
The negative
of this kernel 0 1 2 1 0
would be used in
practice. 1 2 16 2 1

0 1 2 1 0
Zero crossing Zero crossing

0 0 1 0 0
2 2s

Figure 5.19: (a) Courbethus


direction, 3D du négatifhaving
avoiding de la LoG.
to use(b) Négatifkernels
multiple du LoG to affiché
calculatesous
theforme d’image. (c) Coupe
strongest
transversale deresponse
(a) montrant passages par zéro.
at any point in the image. (d) Approximation du noyau 5 × 5 à la forme en (a). Le négatif
de ce noyau seraitThe
utilisé en pratique.
Marr-Hildreth algorithm consists of convolving the LoG kernel with an input
image,
L’allure de LoG(x, y), réponse impulsionnelle du filtre Laplacien d’une Gaussienne (LOG), lui a

g( x, y) = ⎣
G( x, y)⎦ 夹 f ( x, y)
2
⎤ (10-30)
valu l’appellation chapeau mexicain . La mise en œuvre
4.6 EDGE d’une détection de contours
ENHANCEMENT avec
105 le filtre LOG
nécessite les étapes suivantes
andComments
then : zero crossings of g( x, y) to determine the locations of edges in
finding the
f ( x, y). Because the Laplacian and convolution are linear processes, we can write
As is evident from Figure 4.13, the results are still quite noisy even with a broad 10  10
— Convolution
This expression is
de l’image
Eq. (10-30) as avec le filtre LoG (filtre 2D) ;
implemented in the Gaussian (s ¼ 3.0) as specified in the above example. The reader may wish to experiment with
spatial domain using
— Détection desdifferent
passagesGaussian
parparameters
zéro de (note that the
l’image filter k can itself be visualized as an image using
2 résultante ;
the imagesc() function). g( x, y) = ∇ [G( x, y) 夹 f ( x, y)]
Eq. (3-35). It can be
implemented also in the (10-31)
frequency domain using
Eq. (4-104).
— Seuillage de l’image afin de ne considérer que les passages par zéro d’amplitude suffisante.
indicating that we can smooth the image first with a Gaussian filter and then com-
pute the Laplacian of the result. These two equations give identical results.
The Marr-Hildreth edge-detection algorithm may be summarized as follows:

1. Filter the input image with an n × n Gaussian lowpass kernel obtained by sam-
pling Eq. (10-27).
2. Compute the Laplacian of the image resulting from Step 1 using, for example,
the 3 × 3 kernel in Fig. 10.4(a). [Steps 1 and 2 implement Eq. (10-31).]
3. Find the zero crossings of the image from Step 2.

Figure EdgesContours
4.13 5.20:
Figure detected asdétectés
the zero crossings of the LOGLoG.
par l’opérateur operator

A couple of points to note with this operator are:


La Figure 5.20 représente le résultat de l’application de l’opérateur LoG une image.
DIP4E_GLOBAL_Print_Ready.indb 726 6/16/2017 2:12:57 PM
. In the general case, all edges detected by the zero-crossing detector are in the form of
closed curves in the same way that contour lines on a map are always closed. In the
80 Matlab implementation, if a threshold of zero is specified then this is always the case
(NB: Example 4.10 uses an autoselected threshold (parameter specified as ‘[ ]’) on which
edges to keep). The only exception to this is where the curve goes off the edge of the

Vous aimerez peut-être aussi