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