• Aucun résultat trouvé

2.5 Changements de topologie

2.5.2 Changements automatiques de topologie

Nous proposons un algorithme de changement automatique de topologie des 1-maillages sim-plexes de IR2. Notre approche est fondée sur un découpage régulier de l’espace selon une grille. Contrairement à ce qui est fait dans (McInerney et Terzopoulos, 1995c), notre approche ne néces-site pas de reparamétrer le contour à chaque itération. Le comportement physique et topologique des contours déformables est complètement découplé. Nous ne sommes donc pas limités à une évolution monotone d’inflation ou de déflation du contour. L’algorithme proposé est efficace en raison de sa nature discrète. En outre, notre approche permet de traiter des courbes ouvertes, ce qui n’est le cas ni des courbes implicites, ni des «T-snakes».

Au cours du processus de déformation, nous appliquons l’algorithme d’adaptation du contour proposé dans le paragraphe 2.4.4. Le contour reste ainsi régulièrement échantillonné ce qui est nécessaire pour une détection correcte des auto-intersections. Les contours topologiquement trop courts (moins de 8 sommets) sont détruits.

L’algorithme met en œuvre l’opérateur de changement de topologie T O1

3. Il nécessite de détecter quelles arêtes des contours déformables entrent en collision et d’appliquer les opérations topologiques nécessaires. Pour cela, on décompose le plan (o,x,y) en une grille régulière de taille d. Les contours déformables sont décomposés sur la grille. On crée un sommet de la grille pour chaque intersection d’une arête d’un contour avec le bord d’une case et pour chaque bord d’un contour. Des arêtes de la grille (voir figure 2.24) relient les sommets de la grille dans l’ordre des intersections avec le contour. La figure 2.25 montre un exemple de décomposition d’un contour ouvert sur une grille.

contour déformable

arêtes de la grille cellule de la grille

sommets de la grille

Fig.2.24 – Gauche: définition des sommet et des arêtes de la grille. Droite: arête de la grille associée aux arêtes du contour.

Soit 4 la longueur totale des contours déformables utilisés. Les cellules de la grille non vides sont rangées dans une table de hachage. Il y a au maximum 4 cellules. Chaque cellule de la grille mémorise la liste des arêtes de la grille qu’elle contient. Pour chaque cellule contenant plus d’une arête de la grille, on teste les intersections des arêtes de la grille deux à deux. Pour chaque intersection d’une

Fig. 2.25 – Un contour déformable ouvert (gauche) et sa décomposition sur une grille régulière (droite).

paire d’arêtes de la grille, on associe une paire d’arête des contours déformables (les arêtes médianes en terme de distance topologique).

Chaque paire d’arêtes provoquant une intersection est rangée dans une table de hachage. Comme deux composantes connexes se recoupent généralement en deux points (voir figure 2.26), on recherche pour toute intersection détectée une deuxième intersection impliquant les mêmes contours. Si une telle intersection existe, elle est traitée juste après la première. Les arêtes sécantes sont fusionnées par une opération topologique T O1

3. La seule exception est le cas où les deux arêtes appartiennent à un même maillage et sont à une distance topologique trop courte. On abandonne alors la fusion pour éviter de créer des composantes connexes trop petites.

Fig. 2.26 – Détection de l’intersection de deux composantes connexes (à gauche) et découpe simul-tanée des deux intersections (au centre) ou répulsion des deux composantes (à droite).

En raison de la discrétisation sur une grille de taille d, l’algorithme proposé garantit que : • si une paire d’arêtes de la grille se coupent, alors au moins une paire d’arêtes des contours se

coupent à l’intérieur de la cellule;

• si une paire d’arêtes des contours se coupent et si l’aire commune des deux contours dépasse d2, alors il existe une paire d’arêtes de la grille correspondante qui se coupent.

En d’autres termes, Nous sommes certains de détecter une intersection dès que la surface commune des deux contours dépasse d2. En pratique, on fixe aléatoirement le point d’origine o de la grille à chaque itération de manière à renforcer la détection des intersections.

2.5. Changements de topologie 69

topologie sur deux exemples synthétiques. Dans l’expérience 2.27, un modèle circulaire est initialisé dans un coin de l’image d’un tore. Le modèle attiré par les contours du tore évolue tout au long de l’objet en se raffinant jusqu’à auto-intersection et se sépare en deux composantes connexes. Une force de ballon aide l’évolution du modèle. Le nombre de sommets du modèle est périodiquement mis à jour pour tenir compte du grossissement du modèle. Dans l’expérience 2.28, trois modèles fermés et un modèle ouvert sont initialisés et évoluent sous l’action d’une force interne minimisant l’aire. Les petites composantes connexes disparaissent et les modèles subissent de nombreuses séparations et fusions avant de se réduire à un segment.

Fig. 2.27 – Évolution d’un modèle homéomorphe à un cercle vers un objet de topologie torique. Contraintes répulsives

Dans certains cas, il est utile de segmenter simultanément plusieurs structures avec différents modèles en s’assurant que les modèles ne se recoupent pas (Poupon, 1999; Poupon et al., 1998). L’algorithme précédent permet d’empêcher les modèles de se couper plutôt que d’opérer des chan-gements topologiques (voir figure 2.26, droite). Si les arêtes sécantes appartiennent à deux contours différents, on peut décider de ne pas les fusionner. On recherche alors les deux points d’intersection des deux contours comme précédemment. On aligne tous les sommets se trouvant entre les deux points d’intersection sur une ligne médiatrice. La figure 2.29 illustre la segmentation des contours des oreillettes gauche et droite du cœur dans une coupe petit axe à l’aide de deux contours déformables sans contrainte (à gauche) et avec un comportement répulsif (à droite).

Coût de l’algorithme et influence de la résolution d de la grille

En pratique, la construction de la grille et la détection de collision n’ont lieu qu’une fois toutes les quelques itérations du processus de déformation. Dans la mesure où les calculs sont optimisés par l’utilisation des tables de hachage et la discrétisation sur la grille, le surcoût en temps de calcul est peu important. Le coût d’une étape de transformation topologique est typiquement du même ordre de grandeur qu’une étape de déformation. En réalisant les calculs toutes les cinq itérations, on introduit un surcoût de 20% du temps de calcul seulement.

Fig. 2.28 – Évolution de quatre modèles composant le symbole du ying-yang sous l’action de forces internes minimisant l’aire.