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

Documents pareils