Analyse d`image numérique avec ImageJ
Transcription
Analyse d`image numérique avec ImageJ
Analyse et manipulation d'images numériques avec Par : Gabriel Lapointe gabriellapointe.ca Pourquoi traiter ses images? 1.Améliorer leurs apparences avant une publication ou une présentation. 2.Mettre en évidence des détails obscurs. 3.Faire des analyses quantitatives. Les avantages d'ImageJ par rapport aux autres options disponibles ● Logiciel dans le domaine public au code ouvert. ● ● Peut fonctionner sur tout système où l'on peut installer Java. ● ● Donc, absence de licence coûteuse. Besoin de plus de mémoire pour vos analyses? Utilisez l'un des différents serveurs ESI de l'université. Supporte 2 types de langage de programmation ● ● Macro (« Java simplifié » permet d'avoir accès aux différentes fonctions déjà incorporées dans ImageJ) Plugins (Interface permettant d'avoir accès à toute la puissance de java. Idéal pour ajouter de nouvelles fonctions à ImageJ) ● Mise à jour fréquente et facile à faire. ● Supporté par une communauté très active Ressources ● Site web officiel : ● ● Macbiophotonics : ● ● http://imagejdocu.tudor.lu/doku.php Liste de diffusion : ● ● http://www.macbiophotonics.ca/imagej/ Wiki : ● ● http://rsbweb.nih.gov/ij/index.html https://list.nih.gov/archives/imagej.html Burger et Burge : Digital Image Processing, An Algorithmic Introduction using Java; Springer Verlag, 2008 ● http://www.imagingbook.com/ Menus L'interface principale Ouvrir, sauvegarde, création d'image Montage, outils de dessin Modification et conversion, opération géométrique Filtres et opérations mathématiques Statistiques, Mesures, graphique Accès aux plugins Gestion des fenêtres Raccourcis au site web, information et mise à jour Les Menus (Edit) Mémoire maximum ●Windows 32-bit: le nombre le plus petit, 75% du total ou 1.4 Gbit ●Windows 64-bit: 75% du total ●Mac OSX 32-bit: le nombre le plus petit, 75% du total ou 1.8 Gbit ●Linux 32-bit: 3 Gbit ●Linux 64-bit: illimité Les Menus (Image) Les Menus (Process) Les Menus (Analyze) Les Menus (Plugins) Les Menus (Help) Images Plage dynamique (Dynamic range) Binaire: Fax, Masque 2 (2¹) niveaux de gris 4 (2²) niveaux de gris 8 (2³) niveaux de gris 16 32 64 128 256 (2⁸) niveaux de gris 8-bit: Caméra numérique, Écran d'ordinateur... 12 et 16-bit: Caméra CCD, PMT... 32-bit: images déconvoluées... ... 4 096 (2¹²) niveaux de gris ... 65 536 (2¹⁶) niveaux de gris ... 4 294 967 296 (2³²) niveaux de gris Type d'image dans ImageJ ● 8-bit ● Les images binaires sont considérées comme des images 8-bit avec seulement 2 valeurs de 0 (noir) et 255 (blanc) ● 16-bit ● 32-bit ● 8-bit Color ● ● RGB Color ● ● Images couleur standard RGB Stack ● ● Images en noir et blanc auxquelles on a appliqué une colorisation artificielle (Lookup Table) Images dont les couleurs ont été séparées dans leurs composantes rouge, verte et bleu dans un Stack. HSB Stack ● Images dont les couleurs ont été séparées dans leurs composantes Hue, Saturation et Brillance. Informations sur l'image Histogramme Analyze > Histogram Linéaire Représentation de la répartition de l'intensité lumineuse d'une image où l'on porte en abscisse le numéro des niveaux de gris et en ordonnée pour chaque niveau le nombre de pixels ayant l'intensité correspondante à ce niveau. Logarithmique Interprétation de l'histogramme Sous-exposé Normal Sur-exposé Diminution de la plage dynamique Ajustement de la luminosité et du contraste Image > Adjust > Brightness/Contrast... ● ● Permet d'ajuster la valeur maximum et minimum des pixels et de modifier la brillance et le contraste d'une image. Fonctionne sur tous les types d'images. ● ● Ne modifie pas la valeur des pixels. ● ● Par contre, pour les images RGB, Color Balance permet de contrôler chaque couleur individuellement Sauf si l'on appuie sur Apply (pour les images 8-bit et couleurs seulement) Set permet d'entrer directement les valeurs minimum ou maximum. ● Utile pour normaliser plusieurs images. Opérations sur les pixels ● Permets de modifier la valeur des pixels selon différentes fonctions mathématiques. ● ● Opération ponctuelle : Modifie la valeur d'un pixel sans tenir compte de la valeur des pixels adjacents. Filtres : Modifie la valeur d'un pixel en fonction de la valeur des pixels adjacents. Addition et soustraction Process > Math > Add... -125 Original +125 Addition et soustraction = modifie la brillance de l'image Multiplication et division Process > Math > Multiply... X 0.5 Original X2 Multiplication et division = modifie le contraste de l'image Amélioration automatique du contraste Process > Enhance Contrast Calculatrice d'images Process > Image Calculator... Add Add Peut aussi être fait avec des plugins: ● Color Merge ● ● ● ● 2 images à la fois Choix de plusieurs couleurs Supporte les images 16-bit RGB Gray Merge ● ● ● Jusqu'à 4 images à la fois Choix de couleur restreint 8-bit seulement Calculatrice d'images Add Subtract Add Approche classique Calculatrice d'image Gamma (γ) L'importance du gamma Influence du gamma Original B/C Gamma 0.5 Gamma 2 Correction du gamma Process > Math > Gamma... Plugins > Filters > Gamma scroll Images Binaires ● ● ● Image ne comportant que 2 valeurs possibles, 0 (noir) et 1 (blanc). Ou dans le cas d'ImageJ 0 et 255 Généralement le résultat d'un thresholding ou d'une segmentation. Utilité : ● ● Masque : permet d'exclure des parties plus ou moins grandes de l'image lors d'analyse Certaines opérations telles que Watershed ou la détection de structure ne fonctionnent que sur des images binaires. Érosion Process > Binary > Erode ● ● L'érosion réduit la taille des objets de 1 ou plusieurs pixels à la fois. Sers principalement à faire disparaître de petits objets dans l'image Dilatation Process > Binary > Dilate ● ● La dilatation augmente la taille des objets de 1 ou plusieurs pixels à la fois. Sers principalement à faire disparaître de petits trous dans les objets Ouverture et fermeture Process > Binary > Open / Close● Open: ● ● ● ● Élimine les petits objets sans affecter la taille des plus gros. Adoucit le contour des gros objets. Équivaut à une Érosion suivie d'une Dilatation Close : ● Ouverture ● « Ferme » les petits trous dans les objets et adoucit leurs contours sans affecter leurs tailles. Équivaut à une Dilatation suivie d'une érosion Remplir les trous Process > Binary > Fill Holes ● Fill Holes: ● Remplis les trous de toutes tailles sans affecter le périmètre des objets. Séparation d'objet Process > Binary > Watershed Filtres Taille et forme du Kernel r=0.5 r=1.0 r=1.5 r=2.0 r=2.5 r=3.0 r=3.5 r=4.0 r=4.5 r=5.0 r=5.5 r=6.0 Bruit ● Variation aléatoire dans l'intensité des pixels. À ne pas confondre avec le background, le niveau du noir ou un signal non spécifique. ● ● Salt & pepper : Pixel noir dans une zone claire et blanc dans une zone sombre. Souvent causé par un pixel mort dans la caméra. Gaussien : Variation avec une distribution gaussienne, indépendante de l'intensité des pixels. Augmente généralement en fonction du voltage appliqué au détecteur. Correction du bruit Process > Filters > ... Median Gaussian Mea n Diminution du background Process > Substract Background... L'espace des fréquences La transformée de Fourrier (Fast Fourrier Transform) FFT Reconstruction d'images avec FFT Process > FFT > ... FFT Inverse FFT Analyses Les informations disponibles Centre pondéré en fonction de l'intensité Circularité Circ.: 4 ×aire périmètre Aspect Ratio AR: axe majeur axe mineure Rondeur Round : 4× aire axe majeur Écart type de l'intensité Centre de la sélection Remplace la sélection par un ovale Feret: Diamètre le plus long FeretAngle: l'angle (0-180) du ferret MinFeret: Diamètre le plus court aire Solidité Solidity : aire convexe Distribution du 4e =0 ; Normal (Gaussien) <0 ; Plat >0 ; aigu < -1.2 ; multimodal Somme des intensités Distribution du 3e =0 ; symétrique <0 ; asymétrique gauche >0 ; asymétrique droite % de pixels au dessus du threshold La valeur d'intensité la plus fréquente Ne prendre en compte que les pixels au dessus du Threshold Prends les mesures sur une image différente de celle où l'on a fait la sélection La longueur et l'angle sont aussi disponibles si la sélection est une ligne Mesure de longueur Image > Properties... Analyze > Set Scale... Échelle Analyze > Tools > Scale Bar... Calibration de la densité optique Analyze > Calibrate ... Intensité Valeurs Ajout d'une barre de calibration Analyze > Tools > Calibration Bar... Non-calibré calibré Profils d'intensités Analyze > Plot Profile Profils d'intensités Analyze > Surface Plot... Décompte et analyses d'objet Analyze > Analyze Particles... Nothing Outlines ●Masks ●Elipses ●Count masks ● ● Plugins ● ● ImageJ peut être considéré comme un ensemble de petits programmes ou « plugins » écrit en java. Cette structure modulaire à l'avantage de permettre d'ajouter facilement de nouvelles fonctions à ImageJ. Installation et compilation ● Les plugins sont facilement installés tout simplement en les plaçant dans le dossier plugins. ● Pour trouver où se trouve le dossier de plugins – – ● Les plugins se retrouvent en 3 formats. ● ● ● ● Plugins > Utilities > ImageJ Properties... Trouver la ligne qui commence par : Menus.getPlugInsPath *.java : Les codes sources, permet de modifier le plugins. Par contre, ils nécessitent d'être compilés pour pouvoir les utiliser (Plugins > Compile and run...) *.class : Fichier déjà compilé qui peut être utilisé directement par ImageJ. *.jar : Pour les plugins plus complexes, nécessitant plusieurs fichiers class, ces derniers sont regroupés dans un fichier d'archive. Ces derniers peuvent être utilisés directement par ImageJ. Tous les fichiers *.class, *.jar et *.txt dans le dossier plugins, et qui contiennent un « _ » dans leur nom, vont être reconnus par ImageJ et accessible dans le menu Plugins. Bio-formats http://www.loci.wisc.edu/ome/formats.html ● ● Ce plugin permet d'ouvrir la plupart des fichiers propriétaires obtenus avec les microscopes. Dans la plupart des cas, il permet d'avoir accès aux métadonnées contenues dans l'image. Bio-formats File > Open... Plugins > LOCI > Bio Formats Importer Image Flow http://imageflow.danielsenff.de/index.html ● ● Ce plugin crée une interface graphique pour la création de macro. Ce plugin étant tout nouveau, il n'y a encore qu'une version bêta de disponible. Image 3D viewer http://132.187.25.13/home/?category=Download&page=Viewer3D ● ● Plugin de visualisation 3D qui utilise les nouvelles fonctions de java3D (qui doit être installé séparément). Permet d'utiliser les fonctions OpenGL des cartes graphiques. Enregistrement des commande de macro et registre des opérations Plugins > Macros > Record... ● ● Enregistre les actions effectuées et les transpose en langage de macros. Peut aussi être utilisé pour laisser une trace des opérations effectuées Applications Quantification de bandes #1 La boite Quantification de bandes #2 La sélection indirecte En utilisant l'option Redirect To dans setMeasurments on peut sélectioner une bande dans le masque et avoir les mesures de l'image d'origine Compte de PFU / CFU Compte de levures en DIC Quantification des bandes 3 Analyse de profil densitométrique Volume Rendering Image > stacks > 3D project... Surface Rendering Plugins > Biomedical Imaging > VolumeJ Rendering surface