• Aucun résultat trouvé

6. Construction de maillages volumiques 124

6.4. Réparation topologique d’une image n -aire

Par extension de la notion d’image binaire, une imagen-aire est une image qui contient

plusieurs objetsci, chacun d’entre eux étant repéré par une étiquette différente, baignant

dans le fond d’image, qui est le complémentaire de l’union des objets, et que nous

pour-rions noter c

0

= S

i

ci. Nous allons donc essayer d’éliminer au mieux les configurations

singulières afin d’obtenir une imagen-aire bien constituée au sens de Latecki, c’est-à-dire

ne contenant aucune des configurations suivantes.

– Configuration de type 1 (C1) : deux voxels de label i occupent deux coins opposés

d’un carré de taille 2×2 voxels (cf figure 6.4, gauche), les deux autres voxels du

carré présentant un label différent dei. Il y a 3 orientations possibles pour ces carrés

qui peuvent être parallèles à l’un des 3 plans XY, YZ ou ZX, et pour chacun d’entre

deux, 2 diagonales à tester.

– Configuration de type 2 (C2) : deux voxels de label i occupent deux coins opposés

(selon une grande diagonale) d’un cube de taille2×2×2voxels, les six autres voxels

présentant un label différent dei(cf figure 6.4, droite), il y a 4 diagonales à tester.

– Configuration de type 2’ (C2’) : six voxels de label ioccupent tous les voxels d’un

Il s’agit ici d’une configuration supplémentaire par rapport à celles présentées dans

[Latecki, 1997], nécessaire pour l’adaptation au cas des images n-aires et qui est le

complémentaire de la configuration précédente. Ici aussi, il y a 4 diagonales à tester.

Dans un but d’efficacité, nous allons d’abord identifier les zones à problèmes dans l’image

à traiter, zones qui peuvent contenir plusieurs configurations singulières, en dénombrant

lesdites configurations. Ensuite, nous présenterons la notion depoint doublement simple,

qui permet de changer l’étiquette d’un point tout en assurant une propriété

d’homoto-pie, ainsi que des scores qui nous permettrons de choisir le voxel dont il faut modifier

l’appartenance. Enfin nous présenterons l’algorithme complet de réparation topologique.

6.4.1. Extraction des zones à problèmes

Pour extraire les zones à problèmes, nous allons dénombrer les configurations

singu-lières. Nous allons donc parcourir l’image segmentée S et étudier chacun des carrés de

2×2voxels et chacun des cubes de2×2×2voxels. S’ils correspondent à une des

configu-rations singulières C1, C2 ou C2’, nous ajoutons 1 à chacun des 4 ou 8 voxels composant

le carré ou le cube.

Après le parcours de l’image, nous avons une valeur pour chaque voxel, que nous

appele-ronsscore d’erreur, et qui correspond au nombre de configurations singulières auxquelles

appartient le voxel. Les voxels à 0 sont donc ceux qui n’appartiennent à aucune

configura-tion singulière. Comme nous n’allons appliquer que des correcconfigura-tions locales, nous pouvons

extraire les composantes 6-connexes faites de voxels de valeur strictement positive (qui

appartiennent donc à au moins une configuration singulière), et traiter indépendamment

ces composantes.

6.4.2. Point doublement simple

La réparation topologique se fait en changeant l’étiquette d’un point, c’est-à-dire en

changeant la cellule à laquelle il appartient. Il n’est évidemment intéressant de ne

consi-dérer cette opération que pour les points appartenant à une configuration singulière, donc

à l’une des composante connexe extraite précédemment.

Nous sommes intéressés par conserver la topologie de l’image S, c’est-à-dire toujours

avoir le même nombre de cellules, chacune d’entre elles devant rester sans poignée (ou

tunnel) et sans cavité. Il nous faut donc définir comment préserver la topologie d’une

imagen-aire.

En ce qui concerne les images binaires, les points qui peuvent changer de couleur,

c’est-à-dire passer de l’objet à son complémentaire ou vice-versa, sont appelés points

simples. Rappelons qu’il faut utiliser des connexités différentes pour l’objet X et son

complémentaire X¯. Prenons par exemple comme il est d’usage la 26-connexité pour

l’objet et la 6-connexité pour son complémentaire. Un point v sera simple s’il vérifie

[Bertrand and Malandain, 1994]

T

06X¯

(v) =T

26X

(v) = 1

– T

X¯

06

(v) est le nombre de composantes 6-connexes de X¯, 6-adjacentes à v, dans un

18-voisinage dev(le voxelvn’étant pas considéré pour ce calcul, ou étant considéré

comme appartenant àX) ,

– T

X

26

(v) est le nombre de composantes 26-connexes deX, dans un 26-voisinage de v,

(le voxelv n’étant pas considéré pour ce calcul, ou étant considéré comme

apparte-nant àX¯).

Dans le cas d’une image n-aire, il faut vérifier que la topologie est préservée lorsque le

voxelv passe de l’étiquette ià l’étiquette j, c’est-à-dire passe de la cellule ci à la cellule

cj. Il faut donc vérifier que

1. l’on peut bien le retirer de la cellule ci sans modifier la topologie de celle-ci et de

son complémentaire, et que

2. l’on peut aussi l’ajouter à la cellule cj sans modifier la topologie de celle-ci et de

son complémentaire.

Le voxel v doit donc être doublement simple par rapport aux cellules ci et cj. Comme

nous considérons la 6-connexité pour les cellules, il faut donc qu’il vérifie

T

06i

(v) =T

266=i

(v) =T

06j

(v) =T

266=j

(v) = 1

où :

– T

i

06

(v) est le nombre de composantes 6-connexes de ci, 6-adjacentes à v, dans un

18-voisinage dev,

– T

266=i

(v) est le nombre de composantes 26-connexes deS

j6=i

cj, dans un 26-voisinage

dev.

6.4.3. Critères de choix d’un voxel

La notion de point doublement simple permet de s’assurer que le changement

d’appar-tenance ne changera pas la topologie de l’imagen-aire. Toutefois, plusieurs points d’une

zone à problèmes peuvent être simultanément doublement simples. Nous allons nous

in-téresser ici aux critères pouvant nous guider pour le choix du voxel dont il faut modifier

l’appartenance.

Deux considérations peuvent nous guider pour le choix d’un voxel particulier :

– le nombre de configurations singulières qu’il peut permettre de corriger, et

– la régularité géométrique des cellules avant et après la modification.

On définit donc en chaque voxelv :

– le score d’erreurs, qui est le nombre de singularités C1, C2 et C2’ qui contiennentv,

– lescore de régularité, qui est le nombre de voxels dans le 6-voisinage dev qui ont le

même label quev. Ce score mesure la « solidité » de l’appartenance dev à sa région

r

i

.

Et pour chaque changement possibleMv(i→j), on définit les scores suivants :

– le score de correction, qui est la différence entre le score d’erreur avant et après

modification de l’étiquette deiversj.

– lescore d’amélioration de la régularité, qui est la différence entre le score de régularité

avant et après modification. Ce score est d’autant plus élevé que dans le 6-voisinage

dev, le nombre de voxels de c

j

est supérieur au nombre de voxels dec

i

.

Figure 6.5.: Correction d’une 18-singularité. En haut, vue 2D de la singularité, en bas

vue 3D de la singularité. En (a) la situation initiale présente une singularité

(C1) qui mène à une ambiguïté pour l’attribution de l’arête centrale (point

bleu). Parmi les modifications possibles présentés en (b) et (c), c’est la

modification (c) qui sera choisie car elle obtient un meilleur score.

On se servira de ces scores pour guider la recherche de la meilleure modification à effectuer

à chaque étape (voir figure 6.5).

6.4.4. Algorithme de réparation topologique

Lorsque N voxels de l’image (ou d’une composante connexe d’erreur) sont impliqués

dans une singularité, nous avons le choix parmi au plus 6N modifications élémentaires.

Nous devons alors classer ces modifications pour choisir celle qui convient le mieux. On

procède comme suit.

1. On dresse la liste L de toutes les modifications possibles, qui est l’ensemble des

modifications élémentaires (i → j) telles que v est un voxel d’étiquette i qui

ap-partient à une singularité, et que l’étiquette j est portée par un des 6-voisins de

v.

2. On dresse deux sous-listes, L

topo

et L

non−topo

qui contiennent respectivement les

modifications qui préservent la topologie, et les modifications qui ne la préservent

pas. Ce tri est réalisé en évaluant pour chaque modification(i→j)∈ L, si le voxel

ven question est doublement simple relativement àiet àj, en utilisant le test basé

sur les nombres de connexité.

3. On classe chacune de ces deux sous-listes en fonction du score de correction, puis

on élimine toutes les modifications qui n’obtiennent pas le score maximal de chaque

liste, afin de privilégier tout d’abord les modifications qui corrigent le plus de

sin-gularités.

4. On effectue un classement des modifications restantes en fonction du score

d’amélio-ration de la régularité. On sélectionne alors dans chacune des listes la modification

ayant le score le plus élevé, si elle existe. En particulier, il peut arriver qu’il n’y ait

pas de modifications possibles qui préservent la topologie. On appellera les deux

modifications sélectionnées Mtopo˜ , et Mnon˜

topo

.

Et on décide alors de l’action à effectuer en fonction de l’existence ou non de ces

modifi-cations, et des scores qu’elles obtiennent.

1. Si la modification Mtopo˜ existe, on l’applique si son score de correction est

stricte-ment positif (pour assurer la convergence de l’algorithme).

2. Sinon, si M˜

nontopo

existe, on l’applique si son score de correction est strictement

positif (pour assurer la convergence de l’algorithme).

3. Sinon, il n’y a plus de corrections possible qui diminue le nombre de singularités. On

passe alors à une deuxième phase. Lors du calcul des listesL

topo

etL

non−topo

, on ne

sélectionnera cette fois-ci que les modifications(i→j) pour lesquelles i > j (pour

assurer la convergence), avant de les classer et de sélectionner la meilleure, comme

précédemment, en autorisant les modifications qui ont un score de correction nul.

Enfin, on actualise la segmentation et la carte d’erreurs.