• Aucun résultat trouvé

Dilatation des lacets

Dans le document The DART-Europe E-theses Portal (Page 77-85)

Op´ erations morphologiques sur les chaˆınes et lacets

5.1 Dilatation des lacets

Nous allons d’abord voir comment calculer de mani`ere simple le lacet parall`ele `a un lacet donn´e. Nous quitterons ensuite la structure de lacet pour aborder celle de chaˆıne, plus g´en´erale et plus efficace. Elle nous permettra en particulier d’obtenir des algorithmes pour les transfor-mations g´eod´esiques. Nous montrerons aussi comment effectuer certaines mesures (diam`etre de Ferret. . . ) `a partir de la structure de chaˆıne. La fonction de propagation ne sera abord´ee qu’au chapitre suivant, car il sera n´ecessaire d’´etudier d’abord en d´etail la notion de g´eod´esique dans des m´etriques particuli`eres.

5.1.1 Dilatation d’un lacet par l’hexagone ´el´ementaire

Nous supposerons d’abord que X est repr´esent´e par un unique lacet L = (O, C), d’origine O = (x, y) et de liste de codes C= (ci)ni=1. Par commodit´e, nous poseronsc0=cn.

D´efinition 5.1

Soit D:L → L l’application qui transforme les lacets comme suit : Posons L0 = (O0, C0) =D(L). On dira que D(L) est le lacet dilat´e de L.

1. O0=O+~ucn2

2. C0= (c11, . . . , c1i1, c21, . . . , c2i2, . . . , cn1, . . . , cnin), ou sous forme condens´ee : C0 =(cjp)ip=1j n

j=1

aveccj1, . . . , cjij est donn´e par le syst`eme de r`egles R(voir table 5.1) : cj1, cj −→R cj1, . . . , cjij

cj−cj1 mod 6

Tableau 5.1 : Les r`egles du syst`eme R.

Ces r`egles peuvent ˆetre traduites g´eom´etriquement comme le montre la figure 5.1.

Remarque : La r`egle 4 ne peut pas ˆetre activ´ee dans le cas d’un lacet d´elivr´e par l’algorithme de suivi de contours : en effet la propri´et´eP6n’est pas v´erifi´ee. Cependant, cette r`egle nous servira par la suite pour effectuer des dilatations de taille plus grande.

D´emontrons `a pr´esent quelques propri´et´es du lacet transform´eL0 =D(L).

Proposition 5.2

L0 est un lacet (ferm´e).

D´emonstration : Posons pour toute la suite de ce paragraphe p0 =O et pi=O+

Xi j=1

~ucj , 1≤i≤n

Par hypoth`ese,Lest un lacet, doncp0=pn. Par construction, O0 est le point au milieu `a droite de (pn1, pn), dont le code de direction estcn. Posonsp00=O0 et construisons par r´ecurrence la

cj −cj1= 0 cj−cj1 = 1

cj −cj1= 2 cj−cj1 = 3

cj −cj1= 4 cj−cj1 = 5

Figure 5.1 :Interpr´etation g´eom´etrique des r`egles du syst`eme R.

Proposition 5.3

X⊕H1\X⊂ {q0i}qi=1.

Cette proposition exprime le fait que tous les points du dilat´e de taille un deXqui ne sont pas dans Xsont visit´es par le lacet transform´e.

D´emonstration : Soit x∈X⊕H1. La propri´et´eP5 de l’algorithme de suivi de contours assure qu’il existe trois points cons´ecutifspi1,pietpi+1 o`uxest examin´e lorsque l’on balaye les voisins de pi dans le sens trigonom´etrique en partant de pi1 pour aboutir `a pi+1. Soit (xj)sj=1 la suite des points de Xc rencontr´es. On ax=xk pour 1≤k ≤s. x1 =p0i carx1 est le point au milieu

`a droite de (pi1, pi) et xs = p0i+1 puisque xs est le point au milieu `a droite de (pi, pi+1). Par construction (voir figure 5.1), tous les points (xi)si=1 sont visit´es par la sous-chaˆıne du lacet L0 allant de p0i `ap0i+1. Doncx=q0t pour 0≤t≤q−1

Proposition 5.4

{qi0}qi=1⊂X⊕H1.

D´emonstration : Tout pointqi appartient `a une sous-chaˆıne dep0j `ap0j+1. Or tous les points de cette sous-chaˆıne sont voisins de pj ∈X, d’o`u la proposition

En r´esum´e, si nous supposons que les points deXont pour valeur 1, ceux deXcla valeur 0 et que l’on affecte la valeur 1 au points (q0i)qi=1du lacet L0, les points dont la valeur est alors1sont exactement ceux de X⊕H1. Il faut noter qu’une foisX cod´e sous forme de lacet, nous venons de calculerX⊕H1 sans utiliser de relations de voisinages. En fait, celles-ci sont contenues dans l’enchaˆınement des directions des segments successifs du lacet. La figure 5.2 illustre l’application D par un exemple. Nous avons dans ce cas :

L = (O,(4,4,5,5,0,0,2,3,2,1,0,1,3,3))

L0 = O0,(3,4,4,4,5,5,5,0,0,0,1,2,2,3,0,1,1,2,3,3)

5.1.2 Propri´et´es du lacet dilat´e

La figure 5.2 montre bien que le lacet dilat´e ne poss`ede pas les propri´ete´sP1 `a P6. Si l’on cherche `a it´erer la dilatation des lacetsD, nous devons restreindre les propri´et´es demand´ees. En voici trois qui se conserveront par it´eration :

p0 p13 p1

p2

p00 p01

p02

Figure 5.2 :Exemple o`u le lacet transform´e n’est pas la fronti`ere du di-lat´e.

D´efinition 5.5

Soit X un ensemble simplement connexe et L un lacet. Notons le lacet L = (p0,(c1, . . . , cn)) et pi = p0 +Pij=1~ucj et X l’ensemble trait´e. Nous dirons que X est repr´esent´e parL ou que L est associ´e `a X si et seulement si L v´erifie les trois propri´et´es :

Propri´et´es des lacets

Propri´et´e L1: (fermeture) p0 =pn. Propri´et´e L2: ∀i pi ∈X.

Propri´et´e L3 : Soient x1 ∈X et x2 ∈Xc, voisins. Il existe i tel que x1 =pi et x2 est atteint lorsque l’on balaye les voisins depi dans le sens trigonom´etrique de pi1 `a pi+1.

Notons que la propri´et´eL3implique queFront (X)⊂ {pi}ni=1.

L’introduction de ces trois nouvelles propri´et´es est justifi´ee par le th´eor`eme suivant :

Th´eor`eme 5.6

Soit un lacet L associ´e `a X et v´erifiant L1 `a L3. Alors le lacet dilat´e D(L) associ´e

`

a X⊕H1 v´erifie aussiL1 `a L3.

D´emonstration : En gardant les notations du paragraphe pr´ec´edent :

• L0 =D(L) le lacet transform´e deL.

• C = (pi)ni=1 les points deL avec p0 =pn.

• (p0i)ni=1 les points au milieu `a droite de (pi1, pi).

• C0 = (q0i)qi=1 les points du lacet transform´e. On a donc{p0i}ni=1 ⊂ {q0i}qi=1. Propri´et´eL1: L0 la v´erifie (voir la d´emonstration du paragraphe pr´ec´edent).

Propri´et´e L2 : De par la structure du syst`eme R, les points {qi0} du lacet L0 sont voisins des possibles pour x sont alorsa, bou c selon la figure 5.3. Ces trois points seront rencontr´es en balayant dans le sens trigonom´etrique les voisins de qj0 de qj01 `a qj+10 .

Cas 2 : x1 =p0k. Alorsp0k est au milieu `a droite de (pk1, pk) (voir figure 5.4). Notons, toujours selon la figure 5.4, les quatre autres voisins de p0k, a, b, c et d. Les points pk2 et pk+1 ne peuvent pas se trouver simultan´ement en d et a respectivement, car tout voisin de x1 serait dansX⊕H1. Supposonspk2 6=d. L’application des r`eglesR montre queqj01=d, puisque toutes les r`egles (sauf R5 que l’on ne peut pas employer) transformentci, ci+1 en ci, . . . , ci+1.

• Si pk+1 6= a, alors qj+10 = a. Dans ces conditions, les deux seules possibilit´es pour x2, `a savoir b et c seront balay´ees par l’application de la r`egle transformant ((qj01, qj0),(qj0, q0j+1)).

• Si pk+1 = a, pk+2 6= b puisque sinon tout voisin de x1 est dans X⊕H1. La r`egle utilis´ee pour transformer ((pk, pk+1),(pk+1, pk+2) ne sera pasR5 et doncq0j+1=b. x2

est alors cet sera bien visit´e `a l’application deR5 `a ((d, p0k),(p0k, b))

De fa¸con ´evidente, les lacets fournis par le suivi de contours v´erifient les propri´et´esL1`aL3.

Nous en d´eduisons donc :

Proposition 5.7

Soit L un lacet fourni par le suivi de contours. Alors Dn(L) v´erifie L1 `a L3 pour l’ensembleX⊕nH1.

Ainsi donc, supposons que nous disposions d’une image binaire ne contenant qu’un objet simplement connexe dont les pixels sont `a la valeur 1, le fond ayant la valeur 0. Si nous tra¸cons tous les lacets Di(L) pour 1 ≤ i ≤ n `a la valeur 1, l’ensemble des pixels `a la valeur 1 sera exactement X⊕nH1. Malheureusement, le lacetDn(L) contient beaucoup de points n’´etant pas sur la fronti`ere deX⊕nH1. Apr`es avoir montr´e comment ´etendre ces r´esultats au cas d’une union de lacets d´ecrivant un objet quelconque, nous montrerons comment il est possible d’´eliminer ces portions inutiles.

x0 ∈X b qj+10

qj01

a

c q0j =x1

Figure 5.3 :Illustration du cas 1.

a p0k=q0j =x1 d b

pk

c

pk1

Figure 5.4 :Illustration du cas 2.

5.1.3 Dilatation d’un ensemble de lacets

Il a ´et´e d´emontr´e que tout sous-ensemble X pouvait ˆetre d´ecrit par une suite d’ensembles (Xi), unions disjointes d’ensembles simplement connexes :

X= ((X0\X1)∪X2)\X3. . .= [ i=0

X2i\X2i+1

et les lacets d´ecrivant X sont les contours internes des X2i et les contours externes desX2i+1. Plus pr´ecisement :

• SoitY une composante (simplement) connexe deX2i. Le suivi de son contour fournira un lacet poss´edant les propri´et´es L1`aL3 pour la composanteY.

• SoitZ une composante (simplement) connexe deX2i+1. Nous suivons le contour deZcqui fournit un lacet poss´edant les propri´et´es L1`a L3pour Zc.

Proposition 5.8

Le suivi de contour deX quelconque fournit un ensemble de lacets v´erifiant globale-ment L1 `a L3.

D´emonstration :

Propri´et´eL1: clair car chaque lacet est ferm´e.

Propri´et´eL2: par construction de l’algorithme de suivi de contour, chaque point d’un lacet est dansX.

Propri´et´eL3: soient x1 ∈X et x2∈Xc voisins. Alors x1 ∈X2i et deux cas seulement peuvent se pr´esenter :

• x2 ∈X2i1. Il suffit d’appliquer la propri´et´eL3au lacet contour de la composante de X2i contenant x1.

• x2 ∈X2i+1. Il suffit d’appliquer la propri´et´eL3au lacet contour du compl´ementaire de la composante de X2i+1 contenantx2.

Proposition 5.9

Soit {Li}ni=1 l’ensemble des lacets de contour de X. Alors {D(Li)}ni=1 v´erifie L1 `a L3pour X⊕nH1.

D´emonstration : la d´emonstration propos´ee dans le cas d’un unique lacet se transpose directe-ment au cas d’une union de lacets.

Dans le document The DART-Europe E-theses Portal (Page 77-85)