Manipulation des images avec ImageJ

Transcription

Manipulation des images avec ImageJ
Mercredi 2 mars 2016
TD imagerie du bois, analyse d’images, CT-scanner
Utilisation d'ImageJ
Frédéric Mothe, Fleur Longuetaud (LERFoB)
1 Manipulations de base
Lancez ImageJ. La fenêtre principale du logiciel est la suivante :
Ouverture d'une image
Allez dans le menu File / Open et ouvrez le fichier TD_image/douglas/dou2b_351.dcm. Vous
obtiendrez probablement une image presque entièrement noire...
Ajustez le contraste par le menu Image / Adjust / Brightness/Contrast. Cliquez sur le bouton Auto
et/ou ajustez les glissières Minimum et Maximum :
Afficher les propriétés de l'image
L'image dou2b_351.dcm est une coupe transversale extraite d'une pile d'images tomographiques
prises sur une rondelle de bois. La dimension de l'image est de 512 x 512 pixels, qui représentent dans
la réalité une taille de 416 x 416 mm comme cela est indiqué en haut de l'image. Un pixel correspond
donc à un carré de côté 416 / 512 = 0.8125 mm.
TD Imagerie bois
2
Ces informations sont contenues dans l'entête du fichier au format DICOM (.dcm) et ImageJ les a lues
en même temps que l'image. Le format DICOM étant conçu pour l'imagerie médicale, l'entête contient
beaucoup d'autres informations sans grand intérêt pour nous (allez dans le menu Image / Show Info
pour afficher l'entête complet).
Les informations utiles pour ImageJ peuvent être
affichées par Image / Properties.
On y retrouve le nombre de coupes (Slices = 1
puisque nous n'avons qu'une coupe de la série) et la
taille des pixels (0.8125 mm). L'épaisseur de la
coupe (Voxel Depth) est ici de 1.25 mm.
Niveaux de gris, unités Hounsfield et densité
Lorsque vous promenez la souris dans l'image, les coordonnées du pixel pointé par le curseur
s'affichent en bas de la fenêtre principale d'ImageJ :
Les deux derniers nombres indiquent le niveau de gris du pixel : le nombre entre parenthèse est sa
valeur telle qu'elle est codée dans le fichier, le nombre plus à gauche est le niveau de gris exprimé en
unité Hounsfield (ou CT number), c'est à dire la valeur calibrée par le scanner : il doit valoir 0 pour
l'eau et -1000 pour l'air. Vous pouvez vérifier que les valeurs sont bien de l'ordre de -1000 autour de la
rondelle. La variabilité des unités Hounsfield dans l'air donne une idée de l'erreur de mesure. La
propriété physique mesurée par le scanner étant la densité, il suffit en première approximation
d'ajouter 1000 aux unités Hounsfield pour obtenir la masse volumique exprimée en kg/m3 (0 pour l'air,
1000 pour l'eau).
TD Imagerie bois
3
Note : Dans les coins de l'image, les unités Hounsfield sont encore plus faibles : -3024. Il s'agit en
réalité d'une convention pour indiquer que cette partie de l'image déborde du champs de
vision du scanner.
Par convention, plus la densité est forte, plus la couleur affichée est claire. On peut très bien décider
l'inverse : cliquez sur invert LUT dans le menu Image / Lookup Tables et vérifiez que les unités
Hounsfield n'ont pas changé bien que le fond soit maintenant affiché en blanc. Inversez de nouveau les
LUT pour revenir à l'affichage conventionnel. On peut également décider d'afficher des couleurs à la
place des niveaux de gris (on parle alors de fausses-couleurs). Testez les différents LUT disponibles
dans le menu Image / Lookup Tables.
Changer le grossissement
Modifiez le zoom avec l'outil "Magnifying glass" en bas de la fenêtre ImageJ, puis en cliquant sur la
zone de l'image à agrandir. Cliquer avec le bouton de droite pour dézoomer. Les touches + et - du
clavier donnent le même résultat.
Placez la souris vers le centre de l'image et appuyez plusieurs fois sur la touche + jusqu'à distinguer les
pixels. Déplacez-vous dans l'image en cliquant sur l'outil "Scrolling tool" (en forme de main) puis dans
l'image en faisant glisser la souris.
TD Imagerie bois
4
Tracer un profil
Cliquez sur l'outil "Straight" de tracé de lignes :
Tracez une ligne de la moelle à l'écorce puis affichez le profil des unités Hounsfield le long de cette
ligne par la commande Analyze / Plot Profile :
Note : Cliquez sur le bouton Live pour que le profil se mette à jour lorsque vous modifiez la ligne.
Mesurer des surfaces
Pendant que vous tracez un rectangle dans l'image avec l'outil "Rectangular", ses dimensions en mm
s'affichent en bas de la fenêtre principale d'ImageJ tant que le bouton gauche de la souris reste
enfoncé :
TD Imagerie bois
5
Pour mesurer des formes plus complexes, utilisez l'outil "Polygon Selections" ou "Freehand
Selections". Pour enregistrer les données, utilisez le menu Analyze / Measure (ou Ctrl-M). La fenêtre
suivante devrait s'afficher :
Par défaut, la commande Measure affiche la surface, la moyenne et les valeurs minimale et maximale
des niveaux de gris dans la zone sélectionnée. Utilisez le menu Analyse / Set Measurements pour
ajouter d'autres informations. Cliquez par exemple sur Bounding Rectangle et retapez Ctrl-M pour
afficher les coordonnées du coin haut-gauche (BX et BY) et les dimensions (Width et Height) du
rectangle englobant votre sélection.
Mesurer des distances et des angles
Pour
mesurer
une
distance,
utilisez
l'outil
"Straight". Tracez une ligne n'importe où dans
l'image. Pendant le tracé, la longueur et l'azimut
du vecteur (angle entre l'axe horizontal et le
vecteur) s'affichent en bas de la fenêtre ImageJ
(length et angle) :
a = +130°
Remarquez que l'azimut dépend de l'orientation du
vecteur. Par exemple voici l'azimut de vecteurs
Moelle
X
radiaux partant de la moelle :
a = -140°
Pour enregistrer ces valeurs vous pouvez utiliser la commande Measure, qui affiche deux colonnes
supplémentaires avec la longueur et l'azimut lorsqu'une ligne est tracée sur l'image.
Note : L'outil "Angle tool" peut être utilisé pour mesurer des angles quelconques.
TD Imagerie bois
6
Tracer un histogramme des niveaux de gris
Le menu Analyze / Histogram devrait
afficher le graphique suivant :
Les champs Value et Count, en bas du graphique indiquent respectivement l'unité Hounsfield et le
nombre de pixels correspondant à la position de la souris. Le pic tout à gauche (Value = -3024)
correspond aux coins hors champs de l'image, le pic du milieu (autour de -1000) au fond et le reste au
bois.
Note : Si vous aviez tracé un rectangle ou une ellipse avant de demander l'histogramme, celui-ci sera
limité à cette région. Si aucun objet n'est tracé, l'histogramme se rapporte à l'image entière.
Pour effacer les objets dessinés , cliquer simplement ailleurs dans l'image.
Mesurer des surfaces et niveaux de gris par seuillage
Le seuillage consiste à extraire de l'image les pixels contenus dans une plage de niveaux de gris
donnés. Le menu Image / Adjust / Threshold affiche le même histogramme et sélectionne en rouge les
pixels de l'image compris entre 2 valeurs ajustables par des glissières :
Cochez la case Dark Background pour indiquer à
ImageJ que vous allez sélectionner des zones claires.
Note : Si vous appuyez sur le bouton Apply, l'image sera binarisée, c'est à dire qu'elle ne comprendra
plus que 2 niveaux de couleur (blanc et noir). Pour revenir à l'image en niveaux de gris,
utilisez le menu Edit / Undo (ou fermer l'image binarisée et réouvrir l'image initiale).
TD Imagerie bois
7
Le menu Analyze Particles permet d'afficher les caractéristiques (surface, périmètre, niveau de gris...)
de la zone affichée en rouge en distinguant chaque composante (objets non connectés). Nous allons
l'utiliser pour mesurer la surface et la densité moyenne de la rondelle. Ouvrez tout d'abord le menu
Analyse / Set Measurements et cochez les cases Area et Mean gray value.
Allez dans le menu Analyze / Analyze Particles... et choisir dans le
champ Show: l'option Outlines. Cochez également les cases
Display results et Include holes.
On obtient une image avec des composantes numérotées ainsi
qu'un tableau de mesures associées à chaque composante.
Dans l'exemple ci-dessous, la composante n°1 correspond à la rondelle de bois (ainsi qu'un morceau
de matelas que nous négligerons ici).
Sa surface est affichée dans la colonne Area (67176 mm²), le niveau de gris moyen est affiché dans la
colonne Mean (-471 H.U., soit environ 529 kg/m3).
TD Imagerie bois
8
Ouvrir une pile d'images
Le dossier TD_image/epicea/pile_epicea contient une série de coupes tomographiques d'un
billon d'épicéa. Lancez le menu File / Import / Image Sequence, allez dans le dossier, sélectionnez un
fichier quelconque et validez.
Vous devez obtenir la fenêtre suivante :
Le dossier contient 150 images. Pour n'ouvrir que les 100 premières indiquez 100 dans le champ
"Number of images".
Ajustez le contraste par le menu Image / Adjust / Brightness/Contrast.
Naviguez entre les images avec l'ascenseur au bas de la fenêtre (ou avec la molette de la souris, ou
encore au clavier avec les flèches droite et gauche).
Note : Pour ouvrir rapidement une pile d'images complète, faites glisser à la souris le nom du dossier
depuis l'explorateur de fichiers vers la fenêtre principale d'ImageJ.
TD Imagerie bois
9
Découper une planche virtuelle
Placez-vous sur la coupe 33 de la pile_epicea. Tracez une ligne de la moelle jusqu'à l'écorce
passant au milieu d'un noeud :
Découpez la planche par la commande Image / Stack / Reslice et acceptez les valeurs par défaut de la
fenêtre "Reslice". Vous devez obtenir une coupe longitudinale du noeud.
Note : Si vous utilisez la commande Image / Stack / Reslice sans tracer de ligne sur l'image, vous
obtiendrez une pile d'images orthogonales aux images d'origine.
Exemple d'analyse d'image : mesurer la géométrie d'un noeud sur une coupe
Nous allons mesurez la surface des noeuds sur la coupe 33 de la pile_epicea.
Dupliquez l'image : Image / Duplicate et renommez "noeuds" l'image dupliquée.
Seuillez les noeuds sur "noeuds" : Image / Adjust / Threshold. Cliquez sur le bouton Apply pour
obtenir une image binaire.
Supprimez les plus petites tâches : Process / Binary / Erode + Dilate (ou Open).
Bouchez les trous : Process / Binary / Fill holes.
Sélectionnez le noeud à mesurer avec l'outil "wand (tracing) tool" (baguette magique).
Mesurez le noeud sélectionné : Analyze / Measure.
Note : On obtient ainsi les informations géométriques (surface, périmètre...) mais pas les niveaux de
gris puisque l'image est binarisée. Pour mesurer le niveau de gris moyen du noeud
sélectionné, revenir à l'image d'origine (coupe 33 de la pile_epicea) ; recopiez dans cette
image la sélection effectuée dans "noeuds" par Edit / Selection / Restore Selection puis
mesurez le noeud sélectionné avec ses niveaux de gris.