• Aucun résultat trouvé

Recherche de chemins sur des fonctions particuli` eres

Dans le document The DART-Europe E-theses Portal (Page 191-198)

Variations lamellaires

7.7 Recherche de chemins sur des fonctions particuli` eres

Nous avons vu comment ramener la recherche des d´efauts `a une recherche des fractures seulement, apr`es avoir coup´e les lames au niveau des flexures. Nous allons `a pr´esent examiner une classe d’algorithmes permettant de connecter les points de forte courbure sans couper les lames, mais en utilisant l’information qu’elles poss`edent. L’id´ee de base est de prolonger les

(1) : Graphe de d´epart (2) : R´esultat par direction des arˆetes

(3) : R´esultat par les arˆetes adjacentes aux longues (4) : R´esultat par l’antisquelette

Figure 7.38 : D´etection des lignes de fracture sur l’image originale par les trois algorithmes pr´ec´edents.

points de forte courbure en des segments ou des courbes et ceci orthogonalement `a la lame pr`es de laquelle ils se trouvent.

7.7.1 Remont´ee vers l’amont

Pla¸cons-nous dans le mod`ele suivant : une lame est un ensemble simplement connexe, limit´e par une courbeC.

D´efinition 7.4

Soitxun point deX. On appelleamontdexl’ensemble des points ydeX v´erifiant : d(y, Xc) = d(y, x) + d(x, Xc)

et l’avall’ensemble des points y deX v´erifiant :

d(y, Xc) = d(x, Xc) − d(x, y)

Soit un pointx de la fronti`ere. A cause des hypoth`eses que nous avons faites, l’amont de ce point est form´e d’un seul segment, normal `a la fronti`ere dont l’une des extr´emit´es est le point, l’autre un point du squelette de la particule. Consid´erons l’adh´erence du compl´ementaire de la particule. L’amont dexest l`a encore form´e d’un seul segment, dans le prolongement du premier (figure 7.39). Ainsi donc, tout point peut ˆetre remplac´e par un segment orthogonal `a la fronti`ere allant d’un point du squelette `a un point du squelette du fond.

Squelette

x Amont

Aval X

Figure 7.39 : L’amont d’un point selon la fonction distance.

Le principe de l’algorithme est donc simple. Si nous calculons la fonction distance `a la fronti`ere (qui est donc d´efinie dans le plan tout entier), il suffit de chercher l’amont de chaque point de forte courbure. Dans le cas digital, cependant, quelques difficult´es surgissent (voir [Mey88]). En effet, l’amont d’un point n’est pas un segment, mais la plupart du temps un cˆone d’ouverture au sommet 60 degr´es. Cela est dˆu au fait que la m´etrique hexagonale est d´eg´en´er´ee et qu’il n’y a plus unicit´e de la g´eod´esique entre deux points. Une notion d’amont

restreint a ´et´e d´evelopp´ee pour ´eviter ce probl`eme et montre comment on peut obtenir un amont d’une ´epaisseur au plus de deux pixels. Pourtant, une notion aussi raffin´ee est inutile dans notre cas, puisque l’amont d’un point aura environ la moiti´e de la largeur d’une lame, soit au plus trois pixels. De plus, comme nous l’avons d´ej`a remarqu´e, `a un seul d´efaut peuvent correspondre plusieurs points de forte courbure sur un mˆeme cˆot´e de la lame. Les cˆones correspondant `a l’amont trivial, c’est-`a-dire l’ensemble des points v´erifiant la d´efinition de l’amont en munissant le plan de la m´etrique hexagonale, s’interp´en`etrent du fait de leur angle au sommet. Donc deux lignes de d´efaut parall`eles espac´ees de moins de la largeur d’une lame seront confondues. Le d´efaut de cet algorithme est le suivant : pour qu’une ligne de d´efaut croise plusieurs lames, il est n´ecessaire qu’un point de forte courbure au moins soit pr´esent de chaque cˆot´e de chaque lame.

Cette condition n’est pas satisfaite en de nombreux endroits. Les lignes fournies ne sont donc pas toujours connexes.

Si l’on veut par exemple qu’une lame soit travers´ee mˆeme dans le cas o`u un seul point de forte courbure est pr´esent, il faut continuer `a se propager sur la fonction distance. Repla¸cons-nous dans le plan continu. Tout point du squelette qui n’est pas un point terminal ou multiple de ce dernier a un aval qui se d´ecompose en exactement deux segments, l’un `a droite, l’autre `a gauche de la branche du squelette (figure 7.40). Ainsi donc si nous sommes parvenus `a un point du squelette par une remont´ee vers l’amont, le chemin que nous avons emprunt´e correspond `a l’un des deux segments formant l’aval du point du squelette. Il ne reste donc plus qu’`a redescendre selon l’aval qui n’a pas encore ´et´e explor´e. La technique peut d’ailleurs ne pas s’arrˆeter l`a : nous pouvons associer `a un point toute une ligne polygonale. Ici pourtant, il est n´ecessaire de ne consid´erer que l’amont restreint pour obtenir une ligne d’´epaisseur deux au plus. En effet, l’utilisation de l’amont trivial conduit `a une ligne qui forme en fait un cˆone et ne signifie plus rien au del`a d’une dizaine de pixels (figure 7.41).

Algorithme 8 : Remont´ee vers l’amont D : Fonction distance `a la fronti`ere de X.

P : Ensemble des points de forte courbure.

• Pour nde 2 `a maxD faire :

Y ←Y ∪((Y ⊕H×n) ==D)

Les r´esultats obtenus par la technique de suivi d’amont et d’aval sont pr´esent´es figure 7.42.

7.7.2 Les courbes de niveau de la fonction de propagation

Nous avons vu que de nombreuses propri´et´es de la fonction distance pouvaient se transposer

`a la fonction de propagation. Montrons comment utiliser cette derni`ere pour se propager ortho-gonalement aux lames. Pour cela, pla¸cons nous dans le mod`ele suivant : supposons qu’une lame puisse se mod´eliser par un rectangle termin´e aux deux bouts par un triangle rectangle isoc`ele.

Soient s1 et s2 les deux sommets extrˆemes de ces deux triangles (figure 7.43). Si la lame est suffisamment longue, la fonction de propagation associ´ee est le maximum de la distance `a s1 et

X

α x α Aval

Figure 7.40 : L’aval d’un point du squelette.

y

x X

Amont trivial

dH(y, x) =dH(y, Xc) dH = distance hexagonale

Figure 7.41 : Remont´ee vers l’amont triviale et effet de cˆone.

(1) : Image originale (2) : Points de forte courbure

(3) : Remont´ee vers l’amont (4) : Redescente vers l’aval

(5) : Squelettisation et ´ebarbulage de (4) (6) : R´esultat

Figure 7.42 : R´esultat par la remont´ee vers l’amont.

de celle `a s2. L’antisquelette se r´eduit au segment qui relie les milieux des grands cˆot´es du rec-tangle. Pla¸cons-nous dans l’une des r´egions limit´ees par l’antisquelette, disons celle qui contient s1. La fonction de propagation est, sur cette r´egion, la distance `a s2. Une courbe de niveau est donc un arc de cercle centr´e ens2, c’est-`a-dire un arc tr`es plat puisques2 est relativement loin.

Donc pour se propager orthogonalement `a la lame, il suffit de suivre une courbe de niveau de la fonction de propagation. Ces courbes de niveau sont bien d’´epaisseur un pixel, donc le probl`eme du cˆone g´en´er´e par la fonction distance disparaˆıt.

Antisquelette

x s2

s1

T(x) = max{d(x, s1), d(x, s2)}

Figure 7.43 : La fonction de propagation d’un rectangle termin´e par deux triangles.

Comment se propager sur le fond des lames ? Le probl`eme est s´erieux, car le compl´ementaire des lames n’est pas simplement connexe ! Pire, il est (en th´eorie du moins) non compact. Pour-tant, si l’on examine ce qui fait fonctionner l’algorithme, on se rend compte qu’il s’agit simple-ment du fait que l’on utilise une boule g´eod´esique centr´ee loin du point que l’on ´etudie. Or nous avons vu comment calculer de mani`ere efficace des boules g´eod´esiques. Quels centres choisir ? Par exemple les quatre coins de l’image donneront des r´esultats satisfaisants. Il suffit maintenant de suivre les courbes de niveau de cette pseudo-fonction de propagation. Les zones de d´efaut sont alors mises en ´evidence en agglom´erant les morceaux de courbe obtenus, par une dilatation de taille un. Ce param`etre correspond `a la finesse avec laquelle on veut distinguer deux lignes de d´efaut parall`eles.

Les conditions pour qu’une ligne de d´efaut soit continue sont les suivantes : si nous con-sid´erons les points successifs des fronti`eres de lames travers´ees, une ligne de d´efaut sera inter-rompue si et seulement si deux points cons´ecutifs n’ont pas ´et´e d´etect´es comme points de forte courbure.

Notons que le suivi de lignes ne devrait s’appliquer qu’aux lignes de flexion. Or l’exp´erience montre que mˆeme au niveau des lignes de fracture, les r´esultats sont bons. Pourquoi ? C’est parce qu’au niveau des extr´emit´es, les points de forte courbure sont proches les uns des autres.

Le suivi n’a pas grand sens et se limite en g´en´eral `a un voisinage restreint du point (de l’ordre de deux pixels). La dilatation finale de taille un a pour effet de connecter ces morceaux de courbe tr`es proches.

Algorithme 9 : suivi des lignes de niveau de la fonction de propagation

X : Ensemble des lames (1).

P : ensemble des points de forte courbure (2).

(ai)3i=0 : les quatre coins de l’image.

• Mise en forme : fermeture de taille 1, squelettisation, ´ebarbulage de taille 5 : (5) et (6)

Dans le document The DART-Europe E-theses Portal (Page 191-198)