Analyse et manipulation d'images numériques...

Preview:

Citation preview

Analyse et manipulation d'images numériques avec

Par : Gabriel Lapointegabriellapointe.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.● Donc, absence de licence coûteuse.

● Peut fonctionner sur tout système où l'on peut installer Java.● 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 :● http://rsbweb.nih.gov/ij/index.html

● Macbiophotonics :● http://www.macbiophotonics.ca/imagej/

● Wiki :● http://imagejdocu.tudor.lu/doku.php

● Liste de diffusion :● 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)

2 (2¹) niveaux de gris

256 (2 ) niveaux de gris⁸

65 536 (2¹ ) niveaux de gris⁶

4 096 (2¹²) niveaux de gris

4 294 967 296 (2³²) niveaux de gris

...

...

...

Binaire: Fax, Masque

8-bit: Caméra numérique, Écran d'ordinateur...

12 et 16-bit: Caméra CCD, PMT...

32-bit: images déconvoluées...

4 (2²) niveaux de gris

8 (2³) niveaux de gris

16

32

64

128

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

● Images en noir et blanc auxquelles on a appliqué une colorisation artificielle (Lookup Table)

● RGB Color

● Images couleur standard

● RGB Stack

● 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

HistogrammeAnalyze > Histogram

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.

Linéaire

Logarithmique

Interprétation de l'histogramme

NormalSous-exposé 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.

● Par contre, pour les images RGB, Color Balance permet de contrôler chaque couleur individuellement

● Ne modifie pas la valeur des pixels.

● 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 soustractionProcess > Math > Add...

Original-125 +125

Addition et soustraction = modifie la brillance de l'image

Multiplication et divisionProcess > Math > Multiply...

OriginalX 0.5 X 2

Multiplication et division = modifie le contraste de l'image

Amélioration automatique du contraste

Process > Enhance Contrast

Calculatrice d'imagesProcess > 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

AddSubtract

Approche classique

Calculatrice d'image

Gamma (γ)

L'importance du gamma

Influence du gammaB/COriginal 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.

ÉrosionProcess > 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

DilatationProcess > 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 fermetureProcess > 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 : ● « Ferme » les petits trous dans

les objets et adoucit leurs contours sans affecter leurs tailles.

● Équivaut à une Dilatation suivie d'une érosion

Ouverture

Remplir les trousProcess > Binary > Fill Holes

● Fill Holes:● Remplis les trous de

toutes tailles sans affecter le périmètre des objets.

Séparation d'objetProcess > 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 bruitProcess > Filters > ...

Median

Mean

Gaussian

Diminution du backgroundProcess > Substract Background...

L'espace des fréquencesLa transformée de Fourrier

(Fast Fourrier Transform)

FFT

Reconstruction d'images avec FFTProcess > FFT > ...

FFT

InverseFFT

Analyses

Les informations disponiblesCentre pondéré

en fonction de l'intensité

Circularité Circ. :4×aire

périmètre

Aspect Ratio AR :axe majeuraxe mineure

Rondeur Round :4× aire axe majeur

Solidité Solidity :aireaire convexe

Somme des intensités

Distribution du 3e

=0 ; symétrique<0 ; asymétrique gauche>0 ; asymétrique droite

% de pixels audessus du threshold

Ne prendre encompte

que les pixels audessus du Threshold

La valeur d'inten-sité la plus fréquente

Écart type de l'intensité

Centre de lasélection

Remplace la sélectionpar un ovale

Feret: Diamètre le plus longFeretAngle: l'angle (0-180) du ferretMinFeret: Diamètre le plus court

Distribution du 4e

=0 ; Normal (Gaussien)<0 ; Plat>0 ; aigu< -1.2 ; multimodal

Prends les mesures surune 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...

ÉchelleAnalyze > Tools > Scale Bar...

Calibration de la densité optiqueAnalyze > Calibrate ...

Intensité Valeurs

Ajout d'une barre de calibrationAnalyze > Tools > Calibration Bar...

Non-calibré calibré

Profils d'intensitésAnalyze > Plot Profile

Profils d'intensitésAnalyze > Surface Plot...

Décompte et analyses d'objetAnalyze > 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

– Plugins > Utilities > ImageJ Properties...

– Trouver la ligne qui commence par : Menus.getPlugInsPath

● Les plugins se retrouvent en 3 formats.● *.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-formatshttp://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éta-données contenues dans l'image.

Bio-formatsFile > Open... Plugins > LOCI > Bio Formats Importer

Image Flowhttp://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 viewerhttp://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 #1La boite

Quantification de bandes #2La 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

Quantification des bandes 3Analyse de profil densitométrique

Volume RenderingImage > stacks > 3D project...

Surface RenderingPlugins > Biomedical Imaging > VolumeJ

Rendering surface

Recommended