19.11.2012 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!