Post-traitement des données du CTscan avec Avizo 7.0.0

Post-traitement des données du CTscan avec Avizo 7.0.0
Post-traitement des données du CTscan avec Avizo 7.0.0
Patricia Wils - patricia.wils@mnhn.fr
UMS 2700 Outils et Méthodes de la Systématique Intégrative
Table des matières
1
.
.
.
.
3
3
3
4
4
2
Démarrer avec Avizo
2.1 Ouvrir les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 L’environnement Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 L’environnement Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
6
3
Visualiser le volume
3.1 Améliorer le contraste . . . . . . . . . . . . . .
3.2 La barre d’outils . . . . . . . . . . . . . . . . .
3.3 Visualiser la pile de coupes . . . . . . . . . . .
3.4 Travailler sur une zone d’intérêt . . . . . . . . .
3.4.1 Réduire le volume dans une boı̂te . . . .
3.4.2 Éditer le volume manuellement . . . . .
3.5 Transformer les données . . . . . . . . . . . . .
3.5.1 Filtrer les images . . . . . . . . . . . . .
3.5.2 Réaliser une transformation géométrique
3.6 Rendu volumique . . . . . . . . . . . . . . . . .
3.7 Colormap . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
9
10
10
11
12
12
13
14
14
Extraire des surfaces
4.1 Isosurface . . . . . . .
4.2 Visualiser les surfaces
4.3 Éditer les surfaces . .
4.4 Simplifier les surfaces .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
17
19
20
5
Segmenter les données
5.1 Seuillage global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Éditer la segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Créer les surfaces correspondant à la segmentation . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
22
26
6
Trucs et astuces pour la segmentation
6.1 Restreindre une sélection de l’outil Magic Wand . . . . . . . .
6.1.1 Sur une coupe avec Draw limit line . . . . . . . . . . .
6.1.2 En créant un matériau frontière . . . . . . . . . . . . .
6.2 Générer la surface correspondant à un matériau en particulier
6.3 Réduire le nombre de labels aux matériaux d’intérêt . . . . .
27
27
28
28
28
29
4
Les
1.1
1.2
1.3
1.4
données
Les images numériques . . . .
Les formats . . . . . . . . . .
Les piles de données ou stacks
Les surfaces . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6.4
7
Opérations arithmétiques et booléénnes sur les labels . . . . . . . . . . . . . . . . . . . . . . . .
Exploiter les résultats
7.1 Réaliser des mesures . . . . . . . . . .
7.2 Exporter des captures d’écran . . . . .
7.3 Créer un film . . . . . . . . . . . . . .
7.3.1 Organiser la séquence de démo
7.3.2 Rotation de la caméra . . . . .
7.3.3 Affichage coupe par coupe . . .
7.3.4 Transparence progressive . . .
7.3.5 Convertir la démo en film . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
32
32
32
34
34
34
35
35
36
1 Les données
1.1 Les images numériques
Une information numérique est codée de façon élémentaire par une valeur 0 ou 1 et stockée dans un bit. La
mémoire d’un ordinateur est gérée en regroupant les bits par paquets de 8, formant ainsi des octets.
Une image numérique est composée de pixels (picture element) définis par avec un niveau de gris. Le niveau
de gris est une valeur entière comprise entre 0 et 255 si l’image est codée sur 8bits (28 =256 niveaux) ou
entre 0 et 65535 pour un codage sur 16bits (216 =65536 niveaux).
La taille d’une image est déterminée par le nombre de pixels la constituant et la valeur du codage. Par exemple,
une image de 16x10 pixels codée en 8bits occupera 16x10x8=1280bits ou 16x10=160octets. La même image
codée en 16bits occupera 16x10x16=2560bits ou 16x10x2=320octets. La figure 1 montre une image de 16x10
pixels.
La dynamique de l’image est le nombre de niveaux de gris sur lequel les valeurs s’étendent. Ainsi, une image
en 16bits a une dynamique bien plus élevée qu’une image en 8bits. Plus la dynamique est grande, plus il facile
de distinguer les détails de l’image et plus les contours sont nets.
Figure 1: Exemple d’une image codée en 8bits et en 16bits.
1.2 Les formats
Les données numériques composant l’image peuvent être stockées de différentes façons suivant le format du
fichier.
• JPEG. Les images sont compressées grâce à un algorithme permettant de supprimer les détails. Les images
résultant occupent moins d’espace mémoire. Cependant, la compression entraı̂ne une perte d’informations
et ce format ne convient pas à une étude avancée.
• PNG. Les images sont compressés grâce à un algorithme non destructif. La réduction des données sera
moindre qu’avec le format JPEG mais les données ne seront pas modifiées. Il convient pour l’échange de
données sur Internet ou pour la rédaction de rapports/présentations.
• BMP. Les images sont codées par une matrice encodant chacun des pixels. C’est un format qui contient
un maximum d’informations et occupe énormément de mémoire. Il est peu existant en 16bits. Un
algorithme de compression permet de travailler avec des images 8bits.
• DICOM. Ce format est utilisé dans le domaine médical. L’en-tête des images stocke des informations
liées au scanner et au protocole. Cela s’avère pratique puisqu’il n’est pas nécessaire de conserver ces
informations dans un fichier texte séparé.
3
• TIF. Ce format est particulièrement adapté à une étude quantitative des données car il permet d’accéder
au maximum d’informations. Les images sont décrites de façon matricielle et la compression peut être
non destructive. La gestion des données par pile (ou stack en anglais) est possible et particulièrement
utile dans le traitement de données CT-scan.
1.3 Les piles de données ou stacks
Le scanner exporte une image 3D. Il s’agit d’un ensemble de coupes 2D du volume de l’objet tomographié
extraites selon une direction, par exemple selon le plan xy en figure 2. La représentation sous la forme d’une
pile (ou stack) d’images est la plus simple pour visualiser et traiter les données. La première image correspond
à la coupe horizontale pour z=0 et les images suivantes sont les coupes suivantes selon l’axe z.
Le volume est ainsi décrit par une matrice 3D de voxels isométriques. Il est toujours possible de décrire
l’objet selon d’autres plans de coupe. Les dimensions du volume exporté sont indiquées dans le fichier texte
d’extension .scm ou .scn. Ouvrir le fichier avec un éditeur de texte type Bloc-notes. L’information est donnée
dans la section [Geometry] par VoxelSizeX et VoxelSizeY en mm. La dimension en Z est identique puisque les
voxels sont cubiques.
Figure 2: À gauche, description du volume de l’objet par une image 3D : la pile de coupes. Ici, les coupes sont
dans le plan xy. À droite, une surface 3D représentant le crâne.
1.4 Les surfaces
Une surface 3D est composée d’un ensemble de points généralement reliés par des triangles, voir figure 2. Le
processus de traitement des images consiste à générer et isoler les surfaces 3D correspondant à des structures
dans l’image 3D à l’aide d’isosurfaces (voir section 4) ou en segmentant les données (voir section 5).
Le format Avizo est un objet de type .surf. Cependant, il est préférable de sauvegarder les surfaces dans un
autre format si l’on souhaite réaliser des traitements avec d’autres logiciels. Meshlab est un logiciel gratuit qui
permet de retraiter les surfaces. Le format .stl est le plus courant. De nombreux logiciels de morphométrie
utilisent le format .ply.
Isosurfaces
Préparer
les images
Charger
les images
Préparer
les surfaces
Segmentation
Figure 3: Protocole de traitement des données.
4
Exporter
les résultats
2 Démarrer avec Avizo
La figure 4 montre la présentation du logiciel à l’ouverture. Celui-ci se compose de plusieurs éléments : une
fenêtre de visualisation (notée 1), un environnement Project View (2) et un environnement Properties (3). Le
menu permet d’accéder aux différentes commandes et plusieurs barres d’outils proposent des raccourcis. Les
paragraphes suivants vont détailler l’utilité de l’ensemble de ces commandes.
Figure 4: Vue générale du logiciel Avizo 7.
2.1 Ouvrir les données
Figure 5: Menu principal et raccourcis de gestion de projets.
Pour commencer le traitement, cliquer sur Open Data. Sélectionner l’ensemble des coupes et cliquer sur ouvrir.
La fenêtre Image Read Parameters (voir figure 6) permet de vérifier que le nombre de coupes sélectionnées est
correct. Dans cet exemple, le jeu de données est constitué de 1318 coupes de 1209x1215 pixels.
Le nom de l’objet est créé à partir du nom de la première coupe mais il est préférable de l’éditer pour lui
donner un nom explicite. Si la taille du voxel est connue, il faut la renseigner dans voxel size. Pour les
données issues de la plate-forme, cette information se trouve dans le fichier texte fourni avec les images sous
l’appellation voxelsizex.
2.2 L’environnement Project View
L’objet créé apparaı̂t dans la fenêtre Project View. En cliquant sur un objet, les commandes les plus usuelles
apparaissent, voir figure 7. L’ensemble des commandes disponibles pour un objet donné est accessible en
faisant un clic droit sur l’objet. En particulier, la commande Save Data as permet d’enregistrer l’objet.
Il est recommandé d’enregistrer l’objet créé à partir des coupes au format Avizo (avec l’extension .am) pour
faciliter l’ouverture du projet lors de prochaines manipulations. La version 7.0.0 d’Avizo peut ouvrir des
volumes générés à partir des versions précédentes. Par contre, les versions précédentes d’Avizo ne gèrent pas
les volumes de la version 7.0.0.
5
Figure 6: Fenêtre d’ouverture des données.
Dans l’ensemble du logiciel, les raccourcis clavier apparaissent dans la fenêtre d’information lorsque la souris
survole un outil donné. Le carré orange à gauche d’un objet sert à activer ou désactiver sa visualisation dans
la fenêtre principale.
Figure 7: Onglet Project View dans le Main Panel.
2.3 L’environnement Properties
En cliquant sur un objet, ses caractéristiques s’affichent dans l’onglet Properties, voir figure 8. Par ailleurs,
des raccourcis vers certains outils sont disponibles. Dans le cas de l’objet constitué de l’ensemble des coupes,
l’onglet Properties propose l’accès aux outils de filtrage (Image Filters Editor), de rognage (crop Editor) ou de
transformations géométriques (transform Editor).
Figure 8: Onglet Properties.
6
3 Visualiser le volume
3.1 Améliorer le contraste
L’outil Measure/Histogram affiche l’histogramme de la pile d’images, voir figure 9. Ce graphe représente
le nombre de pixels en fonction du niveau de gris. Il rend compte de la distribution des niveaux de gris dans
l’image. Le pic de valeurs à gauche de l’histogramme correspond à l’air (sauf si le scan est réalisé sur une
région d’intérêt dans l’objet).
Pour améliorer le contraste de l’image, on peut choisir de n’afficher qu’une partie des niveaux de gris de l’image
(ceux qui décrivent l’objet). Le réglage du contraste modifie seulement la visualisation des images, les valeurs
des pixels demeurent inchangées. L’étude de l’histogramme permet d’identifier les niveaux de gris contenant
l’information de l’objet. Dans le cas illustré par la figure 9, seuls les pixels dont le niveau de gris est supérieur
à 17500 environ appartiennent à l’objet.
Figure 9: Représentations linéaire (à gauhe) et logarithmique (à droite) de l’histogramme de l’image.
Pour affiner l’analyse de l’histogramme, certains paramètres sont disponibles dans la fenêtre Properties, voir
figure 10. Les niveaux de gris minimum et maximum de l’image sont renseignés dans le champ Range.
Garder ces valeurs pour avoir l’histogramme complet ou les modifier pour tracer l’histogramme d’une gamme
de niveaux de gris. Le curseur Num bins définit la discrétisation de l’histogramme, sélectionner 256 pour
lisser la courbe. Par défaut, le graphe est représenté en colonnes, cocher line drawing pour plus de lisibilité.
Il est également en échelle semi-logarithmique, décocher logarithmic pour une représentation linéaire.
Figure 10: Outil Histogram du menu Measure.
7
Pour parcourir le graphe, sélectionner l’outil Threshold dans le menu Edit/Edit objects de l’histogramme.
Cocher la case Probe. Une ligne apparaı̂t sur l’histogramme et les coordonnées sont affichées sur le graphe.
3.2 La barre d’outils
La barre d’outils est composé de quatre modules. Le premier (figure 11) permet d’interagir avec le volume.
L’environnement Interact (la flèche) permet de naviguer dans les coupes. L’autre environnement, Trackball
(la main) permet de modifier la vue de l’objet :
• la rotation libre avec le clic gauche ou la rotation d’un degré avec l’outil Rotate
• le déplacement en maintenant le bouton du milieu de la souris appuyé ou avec l’outil Translate
• le zoom avec la roue de la souris ou l’outil Zoom
• l’auto-centrage avec l’outil Seek
• le retour à la vue initiale avec l’outil Home
• l’affectation de la vue courante comme nouvelle vue de référence avec l’outil Set home
• la sélection d’une vue en perspective ou orthographique avec l’outil Perspective (l’oeil)
• la sélection d’un objet avec l’outil Pick
Figure 11: Module d’interaction avec le volume.
Le second module permet de modifier la vue (yz, xy ou xz). La vue opposée est accessible en maintenant le
bouton shift appuyé.
Figure 12: Module de gestion des vues.
Le troisième module propose l’outil Stereo pour régler la stéréovision. L’outil Measurement permet de
réaliser différents types de mesures dont la liste est accessible dans un menu en cliquant sur la petite flèche.
Enfin, l’outil Snapshot exporte une image de la fenêtre principale.
Figure 13
Enfin, le dernier module change le nombre de fenêtres visibles dans la fenêtre principale et permet de basculer
en plein écran (touche F11). Pour affecter une vue à une fenêtre dans un mode multi-fenêtre, il faut choisir la
vue dans le second module lorsque la fenêtre que l’on veut modifier est active.
Figure 14: Module de gestion des fenêtres de travail.
8
3.3 Visualiser la pile de coupes
L’outil Bounding Box fait apparaı̂tre la boı̂te englobante (en orange) de l’objet et permet de se repérer dans
le volume.
Figure 15: Visualisation des coupes avec les outils Bounding Box, Ortho Slice et Slice.
L’outil Ortho Slice permet de naviguer dans les coupes. Dans les properties, voir figure 16, il est possible de
modifier l’orientation des coupes (xy, xz ou yz) et le contraste de l’image avec Data window. Pour parcourir
les coupes, il suffit de déplacer le curseur Slice Number.
Figure 16: Outil Ortho Slice de navigation dans les coupes.
Pour choisir le plan de coupe du volume, utiliser l’outil Display/Slice. Par défaut, Slice se comporte comme
Ortho Slice. Cependant, en cochant l’option Rotate, une trackball apparaı̂t dans la fenêtre 3D. Cette trackball
peut être manipulée (avec la flèche du module d’interaction) pour orienter le plan de coupe selon n’importe
quelle direction, voir figure 17. L’option Fit to points permet à l’utilisateur de sélectionner trois points dans
la visualisation 3D et d’extraire le plan de coupe correspondant. Par défaut, le volume est échantillonné par
l’outil Slice. Pour éviter une perte d’informations, renseigner le champ Sampling avec l’option finest.
9
Figure 17: Outil Slice de navigation dans les coupes avec l’option Rotate.
3.4 Travailler sur une zone d’intérêt
3.4.1
Réduire le volume dans une boı̂te
Sélectionner l’outil Extract Subvolume dans le menu de l’objet. Il permet de définir la nouvelle région à
découper, voir figure 18. La nouvelle zone est un rectangle défini par un index min et une taille pour chaque
direction. Il est possible de les définir manuellement en agissant sur les carrés bleus dans l’image avec l’outil
Interact (la flèche du module figure 11. Il est plus facile de cliquer dans un premier temps sur chacun des
max pour obtenir la boı̂te de taille maximale et de la réduire. L’action de l’outil est illustrée sur la figure 18,
le nouvel objet est un ensemble de coupes dont les dimensions correspondent à la boı̂te. Par défaut, le nouvel
objet est nommé avec le nom du volume dont il est issu suivi de l’extension .view.
Prenez garde à l’option Subsample qui permet de modifier la résolution des coupes. Pour conserver la
meilleure description du volume, décocher la case Subsample.
Il peut par contre être utile de travailler sur une version moins résolue de l’image lorsque celle-ci est trop lourde
et que les calculs en sont pénalisés. Pour cela, renseigner un facteur de sous-échantillonnage identique pour
chacune des directions.
Figure 18: Création d’un nouveau volume d’intérêt extrait des données avec l’outil Extract Subvolume.
10
3.4.2 Éditer le volume manuellement
Il est possible d’exclure une partie de l’objet en interagissant directement sur la vue 3d. Pour cela, utiliser
l’outil Compute/Volume Edit depuis le menu accessible par clic droit sur l’objet dans Project View, voir
figure 19.
Figure 19: Outil Volume Edit (gauche) et sélection de la région (en vert) en dessinant sur la vue 3d (droite).
Dans la vue 3d, manipuler l’objet (rotations, translations, zoom) de façon à distinguer clairement la partie du
volume qui doit être isolée. Il est possible de travailler à partir des coupes mais cette étape est plus facile à
réaliser avec une modeèle surfacique de l’objet. Pour obtenir ce modèle, construire une isosurface (voir section
4). Deux applications sont possibles :
• cliquer sur Inside dans le menu Cut pour dessiner une région à extraire au volume.
• cliquer sur Outside dans le menu Cut pour dessiner la région à conserver.
Figure 20: Coupes et isosurfaces illustrant l’action de Volume Edit. Volume initial (haut - gauche) et volume
modifié conservant la région de la figure 19 avec Cut Outside (haut - droite) ou en l’excluant avec Cut Inside
(bas - droite). Le résultat de Volume Edit est un objet à part entière.
11
Un nouvel objet est créé. Les pixels ne faisant pas partie de la région conservée se voient attribués la valeur
du champ Padding value. En règle générale, il convient de fixer cette valeur à 0 ou à affecter la valeur de
l’air à cette région. Le nouvel objet porte le nom de l’objet dont il est issu suivi de la mention .modif.
La figure 20 montre comment isoler une partie de la surface. Le nouvel objet est constitué de coupes où seule
la région conservée a les niveaux de gris de l’image originale. Il est possible de travailler et de segmenter ce
nouvel objet de la même façon que l’objet original. Sauvegarder ces nouvelles données au format d’un objet
.am pour pouvoir facilement travailler sur la partie d’intérêt des données.
3.5 Transformer les données
3.5.1
Filtrer les images
Dans les propriétés de l’objet, sélectionner l’outil Image Filters Editor, voir figure 8. Le type de filtre est
défini par le champ Filter dans un menu déroulant, voir figure 21. Le filtre peut être appliqué en 3D ou en
2D dans un plan donné. Il faut choisir le filtre suivant le type d’effet désiré:
• Edge-Detection applique une détection de contours
• Greyscale modifie la dynamique des images
• Sharpening réhausse les contours
• Smoothing lisse les images et réduit les bruits d’aspects granuleux
• Morphological permet d’appliquer des opérations morphologiques.
Figure 21: Outil Filtrage des images.
12
3.5.2
Réaliser une transformation géométrique
Dans les propriétés de l’objet, sélectionner l’outil Tranform Editor, voir figure 22. Pour configurer la transformation, cliquer sur le bouton Dialog... du menu Manipulator. Une fenêtre intitulée Transform Editor
permet de renseigner les paramètres de la transformation souhaitée.
Figure 22: Outil de Transformation des images.
Il est également possible d’effectuer une translation, une rotation ou un grossissement en manipulant directement dans la vue principale avec l’outil Interact (la flèche du module barre1) comme présenté sur la figure
23.
Figure 23: L’outil Transform propose un ensemble de points manipulables (en haut à gauche). Translation
(en haut à droite) en agissant sur les points verts. Grossissement (en bas à gauche) en agissant sur les carrés
blancs. Rotation en agissant sur le point vert central.
Pour modifier des axes, sélectionner l’outil Crop Editor dans les propriétés de l’objet. Le menu Flip and
swap propose de réaliser des rotations selon les axes.
Le volume transformé est indiqué en italique dans la fenêtre Project View. La sauvegarde du volume peut ne
pas prendre en compte la transformation. Noter les différentes transformations effectuées de façon à pouvoir
les retrouver à la prochaine ouverture du logiciel.
13
3.6 Rendu volumique
Le rendu volumique direct (ou direct volume rendering) repose sur l’algorithme du lancer de rayons. L’objet
voxelisé est représenté dans un environnement avec une caméra et un écran de projection, voir figure 24.
Chaque voxel est converti de niveaux de gris en opacité. Un rayon est lancé depuis la caméra vers chaque pixel
de l’écran. Son parcours traverse ensuite le volume voxelisé et l’information de l’opacité le long du rayon est
accumulée puis déposée dans le pixel de l’écran correspondant.
Cette méthode permet de visualiser le volume du point de vue de la caméra. Le rendu volumique est
généralement amélioré par la gestion de sources lumineuses dans l’environnement précédemment construit.
Figure 24: Rendu volumique direct. Principe de l’algorithme de lancer de rayons. (illustration de Jeff Atwood)
L’outil Display/Volume Rendering propose de construire le rendu volumique de l’objet. Il se compose de
deux parties:
• Volume Rendering contrôle l’étape de conversion des niveaux de gris à travers la Colormap (voir
section 3.7). Par défaut, l’intégralité des niveaux de gris est convertie en transparence. La gamme des
niveaux de gris peut être réduite en insérant de nouvelles valeurs minimum et maximum, voir figure 25.
Utiliser l’histogramme pour connaı̂tre les valeurs minimum et maximum permettant de décrire au mieux
l’objet (voir section 3.1).
• Volume Rendering Settings permet d’améliorer la qualité du rendu, de modifier l’éclairage de la scène
et d’augmenter la description des contours de l’objet.
3.7 Colormap
La colormap permet d’attribuer une couleur à chaque voxel en fonction de son niveau de gris. Elle est construite
sur l’ensemble des valeurs de l’image par défaut. Il faut dans un premier temps choisir les valeurs minimum et
maximum à visualiser (cerclées de rouge sur la figure 25). L’onglet Edit permet ensuite de modifier les couleurs
utilisées en chargeant un fichier .col. D’autres colormaps sont disponibles dans Avizo et accessibles via le menu
Edit/Options/Load colormap.... Le curseur Alpha scale gère la transparence du rendu.
Pour créer une colormap personnalisée, utiliser l’outil Create/Data/Colormap. Renseigner le champ Datafield
pour relier la colormap à un jeu de données. Dans les propriétés de la colormap, l’outil Colormap Editor
permet de construire une nouvelle fonction de colorisation.
À partir de l’objet colormap, créer un objet Colormap Legend pour ajouter l’échelle à l’image, voir figure
25. Préciser les limites min et max dans l’objet Colormap.
14
Plusieurs options sont disponibles pour éditer la légende :
• Data : le type de colormap utilisé
• Options : custom text édite la légende, vertical modifie l’orientation, font gère la police de caractères et
bg color la couleur de fond
• Position : place l’échelle sur l’image
• Size : gère la taille
• Custom Text : modifie la légende, conserver les / pour distinguer les valeurs affichées
• Title : ajoute un titre
Figure 25: Visualisation du volume avec Volume Rendering. Rendu par défaut (haut), avec modification de
la colormap en volrenRed.col (milieu) et avec modification des lumières et amélioration du rendu des contours
(bas). Création d’une colormap et de sa légende associée pour un rendu volumique.
15
4 Extraire des surfaces
4.1 Isosurface
L’outil Display/Isosurface construit la surface englobant les parties du volume dont le niveau de gris est
supérieur à un seuil donné. C’est l’équivalent d’un isocontour en trois dimensions. L’isosurface est donc l’outil
le plus rapide pour visualiser la forme extérieure d’un objet ou les contours d’une structure. La figure 26
illustre le principe de construction des isosurfaces avec le cas synthétique d’un cylindre contenant deux autres
cylindres de niveaux de gris inférieurs.
Seuil = 0
Seuil = 30
Seuil = 105
Seuil = 180
Figure 26: Exemple d’isosurfaces réalisées sur un modèle. Les niveaux de gris des cylindres sont de 180 pour
le grand cylindre et 30 et 105 pour les petits respectivement. La valeur du seuil utilisée pour les isosurfaces
est indiquée en-dessous de chaque figure.
Figure 27: Outil de génération d’isosurfaces.
La valeur du seuil dépend de la structure à isoler. Dans les propriétés de l’isosurface (figure 27), choisir le seuil
avec le curseur Threshold et cliquer sur Apply. Pour les options d’affichage, voir la section 4.2.
16
Pour créer une surface manipulable à partir d’une isosurface, sélectionner l’outil Extract Surface et cliquer
sur Apply. Le résultat est une surface triangulée contenue dans un objet .surf, voir figure 28. Les dimensions
de la surface sont affichées dans ses propriétés en termes de nombre de points et de faces. Les sections
suivantes présenteront les outils d’édition (4.3), de simplification (4.4). L’outil de transformation géométrique
est similaire à celui contrôlant l’objet et présenté en section 3.5.2.
Figure 28: Génération d’une surface à partir d’une isosurface avec l’outil Extract Surface.
4.2 Visualiser les surfaces
Pour visualiser la surface, utiliser l’outil Display/Surface View à partir de l’objet .surf. La surface apparaı̂t
dans la fenêtre principale. Par défaut, la surface contient chacune des régions définies par les labels. Le menu
Draw Style permet de modifier l’apparence de la surface et de la rendre transparente notamment avec le
champ transparent. Le champ Base trans apparaı̂t et permet de modiifier la transparence en réglant le
curseur pour une valeur entre 0 et 1. La figure 30 illustre un exemple de surface traitée en transparence.
Pour appliquer un traitement à une région en particulier, sélectionner le label correspondant dans la liste
Materials. Puis sélectionner dans le menu Buffer la fonction appropriée pour ajouter (Add), retirer (Remove)
ou redessiner (Draw) cette région par exemple.
Figure 29: Outil Surface View.
17
Figure 30: Visualisation de la surface avec un effet de transparence (gauche) et découpée selon un plan oblique
(droite).
L’outil Ortho Slice permet d’accéder à une coupe de la surface. Dans les propriétés de l’outil, cliquer sur
l’outil Clip, voir figure 31. La surface est réduite au niveau du plan de coupe. Pour obtenir l’autre moitié de
la surface, cliquer à nouveau plusieurs fois sur Clip. La même démarche est possible avec l’outil Slice présenté
dans la section 3.3 pour découper la surface selon un plan oblique. Ne pas afficher les outils Ortho Slice ou
Slice en cliquant sur le carré orange pour voir à travers. Un exemple de coupe d’une surface est présenté en
figure 31.
Figure 31: Visualisation de la surface depuis un plan de coupe.
18
4.3 Éditer les surfaces
Avant de modifier les surfaces, veiller à sauvegarder le fichier .surf original.
Dans les propriétés de l’objet surface, sélectionner l’outil Surface Editor. Cet outil permet de corriger
localement les surfaces et de supprimer une partie de celles-ci. Une nouvelle barre d’outils composée de trois
modules apparaı̂t au-dessus de la fenêtre principale. Un nouveau menu intitulé Surface apparaı̂t dans la barre
de menus.
Pour appliquer un changement à un triangle, il faut que celui-ci soit sélectionné. La sélection d’un triangle est
indiquée par une couleur rouge.
Figure 32: Sélection de la surface à éditer.
Le premier module permet de choisir la surface sur laquelle les traitements vont être appliqués. Le plus simple
est de réaliser une sélection par matériau. Pour cela, choisir le matériau d’intérêt dans la liste déroulante.
Par défaut, la surface est labellisée Inside et la sélection est vide. Plus précisément, la sélection contient les
triangles du label Exterior.
Figure 33: Ajout et suppression de triangles.
Le second module permet d’attribuer les triangles sélectionnés au buffer, de les retirer du buffer et de vider le
buffer.
Figure 34: Manipulation des triangles.
Le troisième module permet de modifier localement la surface. L’outil Draw contour to highlight faces
propose de sélectionner des triangles en les entourant directement dans la vue 3D. Pour cela, veiller à avoir
sélectionné l’outil Interact (la flèche de la figure 11). Par défaut, tous les triangles dans la profondeur du
contour dessiné sont sélectionnés. Pour n’ajouter que les triangles visibles, cliquer sur visible triangles only
dans le menu déroulant de cet outil.
Lorsque la sélection convient, choisir dans le menu Surface/Edit le traitement à réaliser sur les faces. La
figure 35 illustre l’opération Surface/Edit/Delete highlighted faces.
Figure 35: Suppression d’une partie de la surface. Sélection des triangles avec l’outil Draw contour (gauche)
et résultat de l’opération (droite).
19
4.4 Simplifier les surfaces
L’onglet propriétés de l’objet .surf indique le nombre de points et de triangles (faces) constituant la surface.
Le nombre de points sera d’autant plus élevé que la résolution des images est grande. Cependant, un grand
nombre de triangle peut rendre la manipulation de la surface laborieuse. Il est parfois nécessaire de simplifier
la surface obtenue avant de l’exporter. Pour cela, utiliser l’outil Simplification Editor de l’onglet Properties,
voir figure 36.
Figure 36: Module de simplification de la surface accessible depuis les Properties de l’objet .surf via l’icône
Simplification Editor (entourée en rouge).
Dans le champ Simplify, préciser le nombre de faces de la nouvelle surface. Puis, cliquer sur Simplify
now.
20
5 Segmenter les données
Pour définir différentes régions dans le volume du scan, il faut segmenter les images. Cela consiste à attribuer à
chaque pixel un label pour le classifier dans une région donnée. Le label se caractérise par un nom et une couleur.
Pour contrôler la segmentation, il faut manipuler l’objet Labels créé à partir de l’outil Multi-Thresholding
(voir le paragraphe suivant) ou obtenu via le menu Image Segmentation des coupes en choisissant Edit New
Label Field.
5.1 Seuillage global
Lorsque les données sont suffisamment contrastées pour que les différentes régions puissent être séparées par
leurs niveaux de gris, il suffit de définir des seuils globaux. Dans le menu Image Segmentation, choisir l’outil
Multi-Thresholding, voir figure 37. Par défaut, Avizo définit deux régions, Exterior et Inside. Pour définir
plusieurs régions, il faut ajouter les noms de matériaux dans la case Regions en les séparant par un espace.
Il faut les classer dans l’ordre des niveaux de gris. Le bouton Histo permet d’accéder à l’histogramme et de
visualiser la répartition des niveaux de gris pour mieux définir les seuils.
Figure 37: Outil de seuillage global Multi-Thresholding.
Par exemple, pour créer trois régions dans le cas du scan des restes dentaires de la figure 27, il faut caractériser
les régions selon leurs seuils respectifs, voir figure 38. En cliquant sur Apply, un objet de type Labels est créé
dans le Project View.
Figure 38: Exemple d’utilisation de l’outil Multi-Thresholding pour segmenter trois régions.
21
5.2 Éditer la segmentation
Dans les propriétés de l’objet Labels, sélectionner l’outil Segmentation Editor dont l’icône est une pile de
coupes avec un point rouge. Une nouvelle fenêtre est disponible dans le Main Panel, à côté du Project View.
La fenêtre principale est désormais constituée de quatre vues : la vue 3D et chacune des orientations xy, xz
et yz. Pour se déplacer dans les vues, il faut agir sur le curseur situé en bas de chaque fenêtre Par défaut, les
matériaux Exterior et Inside sont définis et les pixels sont labélisés Exterior. Plusieurs modules permettent le
traitement de la segmentation.
• le module Materials
Figure 39: Module Materials.
Il permet de gérer la liste des matériaux (ou régions) définis, figure 39. On peut ajouter un nouveau
matériau en cliquant sur Add a new material, ou en supprimer en le sélectionnant dans la liste et en
cliquant sur Remove. Les matériaux peuvent être affichés ou masqués en cliquant sur l’icône de l’oeil
et verrouillés avec le cadenas. À partir d’un clic droit sur un matériau, il est possible de le renommer
et de modifier sa couleur. La couleur du label sera affectée à la région générée. Pour le confort de la
segmentation, il est plus facile de travailler avec des matériaux dont les couleurs sont vives.
• le module Zoom and Data Window
Figure 40: Module Zoom and Data Window.
Les modifications sont affectées à chacune des vues ou à celle sélectionnée seulement en choisissant All
viewers ou Current Viewer. Le Data Window permet de changer l’affichage des vues ou influant sur le
contraste. Pour cela, on choisit d’afficher les pixels dont le niveau de gris est plus élevé que la valeur
de gauche et moins élevé que la valeur de droite. L’histogramme des niveaux de gris est représenté afin
de faciliter le choix des seuils. Généralement, le seuil inférieur est choisi de façon à ne pas afficher les
pixels correspondant à l’air, dont le niveau de gris est le plus bas et qui correspondent au pic de gauche
de l’histogramme (figure 41).
Figure 41: Contrôle du contraste des vues par seuillage de l’histogramme.
22
• le module Selection
Figure 42: Module Selection.
Segmenter l’image avec Avizo consiste à colorier une zone d’intérêt et à l’attribuer à un matériau. La
zone d’intérêt est choisie avec les outils proposés dans le module Tools et s’affiche en rouge dans les
différentes vues. L’outil gomme efface toute la sélection. Le signe + permet d’ajouter la sélection au
matériau choisi dans la liste et le signe - de l’enlever. Les outils 3D lasso sont utiles pour dessiner une
zone d’intérêt directement dans la vue 3D et l’ajouter ou la soustraire à la sélection. Les outils Grow
(resp. Shrink) selection étendent (resp. restreignent) la sélection d’un pixel.
La sélection peut être affichée sur le volume entier ou seulement sur la coupe de travail. La case Show in
3D permet de visualiser la sélection dans la vue 3D. Cela s’avère pratique pour avoir une idée du rendu
surfacique de la sélection mais peut être gourmand en terme de ressources. Aussi, pour alléger les calculs
lorsque la sélection est importante, décocher cette case pour désactiver le rendu volumique.
• le module Tools
Figure 43: Module Tools.
– l’outil Pick and Move retrace la sélection d’un matériau donné en cliquant à l’intérieur d’une
région déjà labélisée et la déplace (figure 44). La case All slices permet d’effectuer la manipulation
sur l’ensemble des coupes de la région.
Figure 44: Exemple d’utilisation de l’outil Pick & Move. Une zone précédemment labelisée (hachures en violet)
peut être sélectionnée (en rouge) et déplacée.
– l’outil Brush dessine directement la sélection à l’aide d’une brosse circulaire (ou carrée en cochant
Square brush) dont la taille est paramétrable (figure 45). C’est l’outil de base d’édition de la
segmentation. Pour faciliter la tâche, basculer la vue dans laquelle la sélection est la plus aisée en
plein écran (avec l’outil de la figure 14) et zoomer au maximum. La case Same Material only permet
d’empêcher la sélection d’une zone déjà labélisée. La case Limited range only permet de contraindre
le dessin en bornant les niveaux de gris sélectionnables. En maintenant la touche CTRL appuyée,
l’outil Brush est une gomme.
23
Figure 45: Exemple d’utilisation de l’outil Brush lorsque l’option Same material only est cochée. La nouvelle
sélection (en rouge) ne peut pas dépasser sur une région déjà attribuée à un matériau (hachures en violet).
– l’outil Lasso définit une sélection en traçant son contour manuellement (freehand) ou à partir de
formes prédéfinies (ellipse ou rectangle). L’option Auto trace adapte le dessin aux contours de
l’image mais ne fonctionne que lorsque le contour est très net.
– l’outil Magic Wand permet de sélectionner une structure à partir d’un point donné et en procédant
par seuillage. Cliquer dans un premier temps sur un point à l’intérieur d’une région d’intérêt. Le
niveau de gris du point sélectionné apparaı̂t en rouge dans l’histogramme, voir figure 46. Utiliser
les curseurs pour réduire la portion d’histogramme correspondant à la structure désirée. Cocher la
case All slices pour étendre la sélection aux coupes proches. L’outil Show in 3D du module Selection
permet de visualiser la zone sélectionnée ainsi. La case Same Material only permet d’empêcher la
sélection d’une zone déjà labélisée, voir section 6.1. La case Fill interior sert à remplir des trous
dans la zone sélectionnée et ne fonctionne qu’en 2D.
Figure 46: Exemple d’utilisation de l’outil Magic Wand. Le point sélectionné sur l’image apparaı̂t sous la forme
d’une croix rouge (haut à gauche) et d’une barre rouge dans l’histogramme (haut à droite). Réduire ensuite
la zone de sélection de l’histogramme pour isoler la structure voulue. L’outil All slices étend la sélection et
extrait la structure.
24
– l’outil Propagating Contour est basé sur le principe des contours actifs. À partir d’un point
initial, la sélection va s’étendre itérativement pour remplir une structure en respectant ses contours.
La déformation du contour actif à chaque itération va lui permettre de s’adapter aux contours de
l’image. La propagation du contour est contrôlée par des paramètres de sensibilité aux contours,
d’intensité de l’image, de courbure et d’attraction aux contours de l’image. Ces paramètres se règlent
à partir de l’onglet Menu, figure 47. La propagation a lieu au niveau du volume 3D ou d’une coupe
seule. Cliquer sur DoIt pour lancer les itérations. Lorsque le calcul est fini, faire défiler les itérations
à l’aide du curseur Time. Si le résultat n’est pas satisfaisant, modifier les paramètres du contour.
Pour changer le point initial, cliquer sur Clear.
Figure 47: Propagation du contour actif. Gestion des paramètres (gauche) et résultat après 5 itérations (milieu)
et 11 itérations (droite).
– l’outil Blow Tool étend la zone de sélection à partir d’un point par contrôle à la souris, figure
48. Les paramètres de Tolerance influe sur le contraste nécessaire aux contours de l’image pour
contraindre le contour à ne pas les franchir. Avant le calcul, un filtrage est réalisé et le paramètre
Gauss width contrôle le lissage du filtre.
Figure 48: Étapes intermédiaire (gauche) et finale (droite) de propagation à l’aide de l’outil Blow.
– l’outil Threshold permet de seuiller globalement l’image. La case All slices propage le seuillage à
l’ensemble des coupes et la case same Material only permet d’empêcher la sélection d’une zone déjà
labélisée.
– l’outil Watershed
– l’outil Display a crosshair affiche la position du curseur dans chacune des vues en indiquant les
coupes par des lignes de couleur.
• le module d’information situé en-dessous du module Tools renseigne sur le niveau de gris et la matériau
attribué au point désigné par le curseur.
25
5.3 Créer les surfaces correspondant à la segmentation
La surface correspondant à la région labelisée peut être visualisée à tout moment de la segmentation. Pour
cela, sélectionner l’outil Generate Surface depuis les labels dans Project View. Si plusieurs labels sont
définis, les surfaces issues de chaque label sont crées. Veiller à définir des couleurs de label adaptées à la
visualisation. Le paramètre Smoothing contrôle le lissage de la surface : none procure la surface brute et les
commandes unconstrained ou constrained smoothing incluent une étape de lissage des labels avant la création
de la surface.
Figure 49: Création et visualisation des surfaces segmentées.
Lorsque la surface générée est trop grande (en terme de nombre de triangles générés), il est possible que le
logiciel soit très lent pour générer la surface et/ou qu’il n’y parvienne pas. Un message d’erreur du type de celui
de la figure 50 apparaı̂t. Parfois, le logiciel parvient dans des temps raisonnables à calculer la surface, tenter
en appuyant sur Continue. Dans le cas où cela ne fonctionne pas, il faut alors sous-échantillonner la surface.
Pour cela, utiliser l’outil Compute/Resample à partir de l’objet labels. Cet outil permet de moyenner les
labels sur plusieurs voxels. Le facteur de réduction est spécifié dans le champ Average, voir figure 51. Il est
préférable de réduire du même facteur dans chacune des directions.
Figure 50: Message d’avertissement incitant à sous-échantillonner les labels.
Figure 51: Sous-échantillonnage des labels pour réduire la taille de la surface générée.
Le résultat est stocké dans un objet de format .surf, voir figure 49. Les surfaces générées peuvent être sauvegardées au format Avizo (.surf) ou exportées dans d’autres formats (STL, PLY, etc).
26
6 Trucs et astuces pour la segmentation
6.1 Restreindre une sélection de l’outil Magic Wand
L’outil Magic Wand (baguette magique figure 43) étend la sélection d’une région d’intérêt à partir des niveaux
de gris d’une image mais ne peut pas appréhender la notion de contours. Il arrive bien souvent que la structure
à isoler soit adjacente à d’autres structures de niveau de gris similaire. L’exemple de la figure 52 montre le
cas de la segmentation d’un fémur. Les valeurs de seuillage nécessaires à la sélection de l’os impliquent de
sélectionner l’ensemble du squelette lors de la commande All slices.
Figure 52: Pour parvenir à sélectionner entièrement la structure du fémur, un seuillage restreint des niveaux
de gris ne suffit pas (images du haut). Cependant, un seuillage plus étendu entraı̂ne la sélection de structures
non intéressantes (images du bas).
Plutôt que de venir compléter manuellement la sélection des images du haut de la figure 52, il est possible de
contrôler la propagation de la sélection en isolant la structure choisie.
27
6.1.1
Sur une coupe avec Draw limit line
L’option Draw limit line de l’outil Magic Wand permet de venir éditer une frontière à l’aide d’un crayon
directement sur une coupe. La figure 53 présente le cas de la séparation de deux os. L’étendue de la baguette
magique est limitée par la ligne dessinée. Noter que cette frontière n’est réalisée qu’en 2D et doit être décrite
sur chaque coupe avant de propager en 3D avec l’option All slices.
Figure 53: Il n’y a pas de valeurs de seuils pour la baguette magique permettant à la fois de sélectionner tout
l’os et d’exclure l’autre (image du haut). Aussi, il faut venir dessiner la séparation avec l’outil Limit line avant
de procéder à la propagation.
6.1.2
En créant un matériau frontière
Pour cela, définir un nouveau matériau qui servira de frontière lors de l’utilisation de la baguette magique.
Repérer sur les coupes 2D les zones où le contact se fait entre la structure d’intérêt et les autres. Attribuer les
pixels posant problème au nouveau matériau.
La figure 54 illustre cette méthode. Le matériau représenté en vert a été créé pour empêcher le propagation de
la sélection à l’os voisin. Lorsque l’on utilise la baguette magique, l’option Same material only permet de
contenir l’expansion de la sélection.
6.2 Générer la surface correspondant à un matériau en particulier
Si l’on souhaite visualiser la surface correspondant à un matériau, l’étape de rendu surfacique est inutilement
alourdie par la génération de l’ensemble des surfaces. Pour isoler un matériau d’intérêt, utiliser l’outil Compute/Arithmetic à partir de l’objet labels. Dans les propriétés du module Arithmetic, vérifier que l’input A
est la carte de labels, voir figure 55.
La carte de labels possède des valeurs entières numérotées 0 pour l’extérieur puis 1 pour le premier matériau de
la liste, 2 pour le second etc. Pour extraire un matériau (par exemple le troisième) renseigner le champ Expr
28
Figure 54: Délimitation de la structure par un autre matériau (en vert). Propagation avec All slices sans (bas
à gauche) et avec (bas à droite) l’option Same material only.
par une formule de type A==3. Pour en extraire plusieurs, utiliser l’opérateur logique OU représenté par le
signe k (AltGr+6). Par exemple, pour isoler les matériaux 2 et 4, l’expression est (A == 2]k(A == 4).
Cette manipulation permet de créer une carte de labels pour générer une surface. Par contre, cette carte n’est
plus attachée à un jeu de données, il n’est donc pas possible de l’éditer. Pour générer une carte de labels
éditable, voir la section 56.
Figure 55: Module Arithmetic pour l’extraction d’un ou plusieurs matériaux donnés.
6.3 Réduire le nombre de labels aux matériaux d’intérêt
Lorsque de nombreux matériaux ”de travail” sont créés, ceux-ci deviennent superflus. Bien entendu, il est
possible de les supprimer. Mais si l’on souhaite les conserver pour des modifications ultérieures, il vaut mieux
extraire les matériaux d’intérêt.
29
Pour cela, utiliser l’outil Compute/Arithmetic qui permet de générer un nouvel ensemble de labels à partir
d’une opération arithmétique ou booléenne. Le module Arithmetic réalise une opération entre 1 à 3 objets.
Pour séparer des labels, il faut lier le module aux images (input A) et aux labels (input B). Ces liens sont
définis à partir de l’arborescence dans la fenêtre Project View où dans les propriétés, voir figure 56.
Figure 56: Propriétés de l’outil Arithmetic et l’outil ConvertImageType
L’opération est définie dans le champ Expr par une formule impliquant l’objet et les labels. Le détail de la
construction de la formule est présenté dans la section 6.4.
Figure 57: Module Materials de la segmentation de l’objet (objet-labels à gauche) et du résultat de l’opération
arithmétique (Result.to-labelfield-8 bits à droite).
Pour obtenir une nouvelle carte de label, il faut convertir le résultat de l’opération avec l’outil Convert/Convert
Image Type, voir figure 56 en modifiant le champ Output Type en 8-bit label. L’optionClean labels permet de supprimer ceux qui sont vides. Le résultat de cette conversion se comporte comme une nouvelle carte
de labels. L’arborescence de cette manipulation est représentée dans la figure 58.
6.4 Opérations arithmétiques et booléénnes sur les labels
Pour manipuler les labels, il faut partir d’un ensemble d’images en entrée A et d’une carte de labels en entrée
B. L’objet créé sera du même type que A à savoir des images en niveaux de gris codées sur 16bits. La carte de
labels possède des valeurs entières numérotées 0 pour l’extérieur puis 1 pour le premier matériau de la liste, 2
pour le suivant etc.
Pour trier les pixels de A à conserver, on réalise une multiplication entre A et un mask de valeurs 0 ou 1. Le
pixel conserve sa valeur pour A*1. Il prend la valeur 0 pour A*0.
Dans l’exemple de la figure 57, la segmentation de la région d’intérêt a nécessité la construction d’un label
intermédiaire que l’on ne souhaite pas conserver. Ici, le seul matériau à conserver est celui indexé 2. La formule
permettant de l’extraire (figure 56) consiste à ne conserver que les pixels labelisés 2. L’équation logique B==2
30
Figure 58: Étapes de la création d’une nouvelle carte de labels à partir d’une première segmentation contenant
des matériaux à ne pas conserver.
aura pour résultat 1 (true) pour les pixels labelisés 2 et 0 (false) pour tous les autres. Ainsi l’expression
complète de cette opération arithmétique est A × (B == 2).
Figure 59: Effet de l’opération Arithmetic présentée sur la figure 58. Image originale (haut à gauche) et image
de résultat (haut à droite). Labels originaux (bas à droite - intermédiaire en violet et région en vert) et Labels
issus de résultat (bas à droite - materiel1 en bleu).
Il est possible de réunir deux matériaux au sein d’un même label. Pour cela, il faut utiliser l’outil Arithmetic
présenté dans la section 56 et l’opération booléenne OU représenté par le signe k (AltGr+6).Pour créer un
nouveau label en unissant les labels 1 et 3 de B, l’expression est A × (B == 1)||(B == 3). Pour le cas où les
labels à unir sont indexés à la suite (par exemple 3,4 et 5), les opérateurs > et < sont également proposés.
L’expression sera de type A × (B > 2).
31
7 Exploiter les résultats
7.1 Réaliser des mesures
L’outil de mesure est accessible depuis le menu Create/Measure/Measurement ou depuis la barre d’outils
de la figure 13. L’onglet Properties propose d’éditer des distances ou des angles 3D. Le pick mode doit être
Accurate plutôt que Fast et le Snapping (l’aimant) doit être désactivé, voir figure 60.
Le curseur d’interaction affiche un M pour indiquer qu’il est possible de placer un point. Pour modifier un
point déjà existant, cliquer sur celui-ci et le déplacer en maintenant le bouton gauche appuyé. Dans le cas de
la mesure d’un angle, manipuler les points situés au milieu des segments pour ne déplacer qu’un point à le fois.
À tout moment, basculer dans l’environnement Trackball (la main) pour manipuler l’objet et l’orienter dans
la configuration où le point est le plus accessible.
La couleur et les dimensions du label de la mesure sont éditables à partir des menus Text, Callout Properties
et Shape Properties.
Figure 60: L’outil Measurement (haut) et des calculs de distance 3D sur une isosurface (bas à gauche) ainsi
que d’un angle 3D (bas à droite).
7.2 Exporter des captures d’écran
Pour sauvegarder l’image de la fenêtre principale, utiliser l’outil Snapshot de la barre d’outils en figure 13.
La vue peut être exportée vers un fichier, une imprimante ou copiée dans le presse-papiers. Les dimensions
de l’image sont liées à la résolution de l’écran par défaut mais il est possible de les modifier dans Offscreen
width et height.
Choisir un nom de fichier et une destination ainsi qu’un format. Noter que le format PNG accompagné d’un
export de type rgb alpha permet de rendre le fond transparent. Cela rend l’image plus facile à importer dans
des documents type présentations ou posters.
Les informations sur l’image exportée de la figure 61 ont été ajoutées avec les outils suivants :
32
Figure 61: Enregistrer une vue de la fenêtre principale.
L’outil Create/Scalebars permet d’ajouter une échelle à l’image. Les propriétés de l’échelle sont éditables
dans les propriétés, voir figure 62.
• Data : renseigne les données à caractériser par l’échelle
• Pos x, Pos y : place l’origine de l’échelle de l’image
• Size x, size y : modifie la longueur de l’échelle
• Frame : indique les axes renseignés par l’échelle
• Reverse : permet de graduer à l’envers
• Ticks et Sub-ticks : modifie les graduations
• Unit : renseigne l’unité. Le plus souvent, en mm.
• Color, Line width, Font : modifie la police de l’échelle. Ne pas hésiter à augmenter sa taille pour qu’elle
soit bien visible sur l’image exportée car celle-ci sera probablement réduite.
• Fixed size, XFactor, Yfactor : ces paramètres influent sur la taille de l ’objet. Ne pas les modifier.
L’outil Create/Caption permet d’ajouter une annotation ou un titre à l’image.
Figure 62: Outils Scalebars et Caption d’édition des images pour l’export.
33
7.3 Créer un film
Pour enregistrer un film, il faut d’abord constituer une démo avec l’outil Demo Maker Create/Animation/Demo
Maker, voir figure 63. La démo se présente sous la forme d’une succession d’évènements à créer dans Event
List. Chacun se produira à un instant à définir entre les valeurs 0 et 1.
Figure 63: Outil Demo Maker.
Les différents objets présents dans le Project View doivent être tels que souhaités pour le début de la vidéo
en terme de positionnement, couleur, etc. Pour changer la couleur du fond, plusieurs options sont proposées
dans View/Background.... Il est possible d’afficher un repère ou une grille avec l’objet Global Axes depuis
le menu View/Axis.
7.3.1
Organiser la séquence de démo
L’outil Demo Maker est composé de deux parties : la gestion de la séquence d’évènements en haut et la gestion
des évènements en particulier dans la partie Event (en-dessous du trait).
Pour ajouter des évènements, cliquer sur Update dans le menu GUI element. Le menu déroulant à côté du
bouton Update va alors proposer la liste de tous les évènements possibles liés aux objets présents dans Project
View. Si l’on ajoute de nouveaux objets dans Project View par la suite, il faut veiller à cliquer à nouveau
sur Update pour que les évènements permettant de les inclure dans la démo soient disponibles dans le menu
déroulant.
Les différents évènements et leur paramétrage seront détaillés dans les paragraphes suivants. Lorsqu’un
évènement est configuré, l’ajouter à la séquence en cliquant sur le bouton Add. Il sera possible de l’éditer en
cliquant sur Replace ou de le supprimer en cliquant sur Remove. Le menu Time propose de visualiser la
démo en cliquant sur le bouton lecture.
Dans les propriétés de chaque objet, des connections (en italique) ou des ports sont définis, voir le module
Surface View en figure 64. Chaque port peut être modifié lors de la démo. Par exmple, pour rendre un objet
transparent, il suffit de choisir l’évènement qui permet de modifier le port Draw Style de l’objet Surface View
dans la liste d’évènements, voir figure 65. L’évènement est décrit par son action (changer l’apparence de la
surface de shaded vers transparent) et le moment de déclenchement.
7.3.2
Rotation de la caméra
Pour filmer une rotation de l’objet, créer l’objet Camera-Orbit à partir du menu Create/Animation/Camera
Orbit. Choisir l’axe de rotation dans le menu déroulant du menu Action. Il est possible de définir un
mouvement de rotation continu en choisissant Loop plutôt que Play once dans le menu déroulant ... du menu
Time.
Dans l’outil Demo Maker, choisir l’élément Camera-Orbit/Time dans le menu déroulant du menu Gui element,
voir figure 67. Définir les angles de départ et d’arrivée de la rotation dans Start/End value. Les valeurs sont
34
Figure 64: Description d’un module.
Figure 65: Création d’un évènement qui rend la surface transparente à l’instant t=0.6.
définies en degré et doivent se situer dans l’intervalle [0-360]. Définir la durée de la rotation par les moments
de début et de fin dans Start/end time. Les valeurs doivent se situer dans l’intervalle [0-1] et ne correspondent
pas à une unité de temps.
7.3.3
Affichage coupe par coupe
Á partir de l’objet OrthoSlice, l’évènement SliceNumber permet de faire défiler les coupes selon une orientation.
Pour animer le parcours des coupes, il suffit de paramétrer l’évènement Ortho Slice/Slice Number en définissant
les coupes de départ et d’arrivée ainsi que les instants de début et de fin du parcours.
Une animation intéressante consiste à afficher une surface graduellement, coupe par coupe. Pour cela, il faut
créer l’évènement Surface View/ Clig using Ortho Slice et définir l’instant où l’évènement apparaı̂tra (Toggle
to value on à l’instant Trigger time). Un évènement Ortho Slice/Transparency est également nécessaire pour
configurer la transparence de l’objet Ortho Slice à la valeur alpha.
7.3.4
Transparence progressive
Pour qu’un objet devienne progressivement transparent pendant l’animation, il faut qu’il soit désigné comme
transparent initialement dans le menu Draw Style des propriétés de la surface. Le curseur Base trans permet
de régler la transparence entre 0 (normal) et 1 (invisible). Sélectionner alors l’évènements Surface View/Base
Trans pour faire évoluer la valeur de transparence entre deux instants.
35
Figure 66: Outil Camera Orbit.
Figure 67: Paramétrer la rotation de la caméra.
7.3.5
Convertir la démo en film
Pour exporter la séquence programmée par Demo Maker, il faut créer l’objet Movie Maker (figure 68) à partir
de la liste proposée en faisant un clic droit sur l’objet Demo Maker. Choisir le format du film (MPEG ou AVI)
ainsi qu’un nom pour le fichier. Le nombre d’images (frames) va déterminer la longueur de la vidéo. Le bouton
Apply permet de lancer l’export.
Figure 68: Conversion de la démo en une vidéo avec l’outil Movie Maker.
36
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising