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.