La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Images numériques et analyse dimages Installation de Image J Structure des images numériques Mesures de distance – calibration Analyse de profil Analyse.

Présentations similaires


Présentation au sujet: "Images numériques et analyse dimages Installation de Image J Structure des images numériques Mesures de distance – calibration Analyse de profil Analyse."— Transcription de la présentation:

1 Images numériques et analyse dimages Installation de Image J Structure des images numériques Mesures de distance – calibration Analyse de profil Analyse de densité Luminosité – contraste – LUT Calibration spatiale Décomposition dune image couleur Types dimages – taille mémoire Seuillage et comptage dobjets Opérations sur images binaires Films 1 Partie 1

2 Installation de ImageJ 2 Logiciel de traitement et danalyse dimages utilisant le langage Java Image J user guide Sites dinformation supplémentaires : Macbiophotonics: Wiki: Burger and Burge : Digital Image Processing, An Algorithmic Introduction using Java; Springer Verlag, 2008

3 Structure des images numériques 3 Image monochrome : tableau de niveaux de gris La valeur des niveaux de gris est comprise entre 0 et 255 = 2 8 – 1 pour une image 8-bit Niveau de gris N° colonne N° ligne1 1 Pixel 4, 2 Ouvrir image : file/open sample « dot blot » Observer lhistogramme des niveaux de gris : analyze/histogram

4 Luminosité – contraste – facteur gamma 4 Corrections linéaires : brightness & contrast Avec image/adjust/brightness and contrast, modifier la luminosité et le contraste de limage Faire de même avec image/adjust/window-level Reset : retour à limage dorigine Apply : applique les modifications sur limage Important : les pixels supérieurs à 255 ou inférieurs à 0 sont tronqués à 255 ou 0 à la suite de la transformation Correction non-linéaire : facteur gamma Applies the function f (p) = (p/255) γ × 255 to each pixel (p) in the image or selection, where 0.1 γ 5.0. For RGB images, this function is applied to all three color channels. For 16–bit images, the image min and max are used for scaling instead of 255. Process/maths/gamma

5 Pixel intensity transfer function and LUT : Look-up Table 5 Valeur initiale du pixel Valeur finale du pixel Histogramme des niveaux de gris de limage de départ Fonction de transfert : valeur finale du pixel = F(valeur initiale du pixel) LUT Inversion: image/look-up tables/invert LUT Fausses couleurs : image/look-up tables

6 Analyse de densité 6 Ouvrir image : file/open samples « dot blot » Définir un « Area of Interest » circulaire de la taille des spots Sauvegarder lAOI : edit/selection/add to manager Se familiariser avec lAOI manager Définir les mesures à effectuer : Analyze/set measurements Sélectionner : area, standard deviation, integrated density, mean grey value Placer laire dintérêt sur les spots et mesurer avec analyze/measure Placer laire dintérêt sur le fond et mesurer avec analyze/measure Sauvegarder le fichier de résultats et créer un histogramme dans Excel de lintensité spécifique (signal – fond).

7 Analyse de profils 7 Ouvrir image : file/open samples « gel » Définir un « Area of Interest » rectangulaire de la taille des pistes du el Sauvegarder lAOI : edit/selection/add to manager Sélectionner la première piste : analyze/gel/select first lane Sélectionner les pistes suivantes : analyze/gel/select next lane Construire les profils : Edit/selection/profile plot : vérifier que « vertical profile » est sélectionné Analyze/gels/gel analyser options : sélectionner « uncalibrated OD » et « invert peaks » Analyze/gels/plot lanes Tracer une ligne de base sous chaque pic Avec la « baguette magique » (magic wand), calculer laire sous les pics Sauvegarder le fichier de résultats et créer un histogramme dans Excel de lintensité des pics principaux.

8 8 Dans une image dabsorbance, les niveaux de gris doivent être convertis en uncalibrated OD pour que le signal mesuré soit proportionnel à la concentration. Attention, ce nest pas le cas pour des images de fluorescence ou de luminescence. Uncalibrated Optical Density (OD) I0I0 I0I0 I Loi de Beer-Lambert : I = I 0 exp(-.C.L) C = constante x ln(I 0 /I) Loi de Beer-Lambert : I = I 0 exp(-.C.L) C = constante x ln(I 0 /I) CL Selecting Uncalibrated OD from the popup menu causes ImageJ to convert gray values to uncalibrated optical density values using the function Uncalibrated OD = log 10 (255 / PixelValue) You do not need to measure OD standards or enter known OD values to enable this feature.

9 Décomposition dune image couleur 9 Une image couleur est composée de trois images en niveau de gris superposées : Vert, rouge, bleue Hue, saturation, brightness (teinte, saturation, luminosité) Ouvrir image : file/open sample « fluorescent cell » Image/color/make composite : sélectionner limage superposée ou les couleurs séparées Avec Image/B&C : ajuster luminosité et contraste pour chaque couleur Superposer les couleurs et sauvegarder limage obtenue

10 Mesure de distances – calibration 10 Avec image/transform, on peut changer lorientation Avec image/crop, on peut enlever une partie de limage Ouvrir image : file/open samples « leaf » Séparer les images en niveau de gris : image/color/split channels Créer les histogrammes en niveau de gris des trois images rouge, vert, bleu Quelle est limage non saturée la plus contrastée ? Créer de nouvelles images couleur en combinant les images séparées avec image/color/merge channels Avec limage en niveau de gris la plus contrastée, utiliser léchelle et « profile plot » pour déterminer la calibration spatiale de limage (mm par pixel) Ou bien utiliser analyze/set scale Puis mesurer la hauteur et langle au sommet de la feuille

11 Type dimages – taille mémoire 11 Types de pixels : 2-bit images (black and white) 8–bit Images that can display 256 (2 8 ) gray levels (integers only). 16–bit Images that can display 65,536 (2 16 ) gray levels (integers only). 32–bit Images that can display 4, 294, 967, 296 (2 32 ) gray levels (real numbers). In 32–bit images, pixels are described by floating point values and can have any intensity value. RGB Color Color Images that can display 256 values in the Red, Green and Blue channel. These are 24–bit (2 3×8 ) images. RGB color images can also be 32–bit color images (24–bit color images with additional eight bits coding alpha blending values, i.e., transparency). Taille mémoire (8-bit = 1 octet = 1 byte) Formats dimages : TIFF: pas de compression ou compression sans perte dinformation JPEG: les images sont compressées, généralement à 1/10 de leur taille. La perte dinformation est invisible GIF; PNG : couleurs compressées; transparence AVI, MOV : format de films

12 12 The JPEG format uses lossy compression that leads to severe artifacts that are not compatible with quantitative analyses. As such, it should only be used for presentation purposes (if file size is an issue), but even then a lossless format such as PNG is probably more suitable. The illustration below exemplifies the consequences of saving images in a lossy format. To replicate it, open the Mandrill sample image (by drag and drop, or alternatively using File Import URL... and typing the images path, duplicate it (Image Duplicate... [D]), save the duplicate as JPEG (File Save As Jpeg... ), run File Revert [r] (so that the saved version is reloaded by ImageJ) and calculate the difference between the two images using Process Image Calculator... By adjusting the Brightness/Contrast... [C], you will notice that the imperceptible JPEG artifacts are most pronounced along regions of higher contrast changes. In addition to this edge artifact, the JPEG algorithm may shift colors to improve compression which may lead to artificial colocalization. These artifacts are intrinsic to the format and may persist even if JPEG Quality has been increased to 100 in Edit Options Input/Output... Once an image has been lossy compressed there is no way of reverting it to the original. Given all this, and since Metadata is poorly supported in lossy formats, it is unreasonable to use JPEG in image processing. Warning on JPEG Compression

13 Seuillage et comptage dobjets 13 Position du pixel Intensité du pixel Valeur initiale du pixel Valeur finale du pixel LUT

14 Seuillage et comptage dobjets 14 Ouvrir image : file/open samples « embryo » Séparer les images en niveau de gris : image/color/split channels Créer les histogrammes en niveau de gris des trois images rouge, vert, bleu Choisir limage en niveau de gris la plus contrastée Faire varier le seuil sur : image/adjust/threshold que se passe-t-il lorsquon augmente le seuil Uniformiser le fond : process/subtract background Choisir le seuil : image/adjust/threshold Sélectionner les mesures : analyze/set measurements Analyser limage : analyze/analyze particle size : > 50 pixels exclude on edges include holes Sauvegarder les résultats dans Excel Remarquer que certains embryons sont fusionnés Appliquer : process/binary/erode Et recommencer Ouvrir limage : file/open samples « cell colonies » compter les colonies

15 15 Erosion, dilatation, et autres opérations Ces transformations sappliquent sur des images binaires (noir et blanc) La valeur finale dun pixel dépend de la valeur initiale de plusieurs pixels Ouvrir Files/Open sample/Blobs Image/Adjust/Threshold enlever dark background puis Apply Save as blobs mask Sur limage blobs mask essayer les transformations suivantes : Process/Binary/Erode: érosion (enlève 1 pixel sur les contours) Dilate: dilatation (ajoute 1 pixel sur les contours) Open: érosion + dilatation (arrondit les objets et enlève les petits objets) Close: dilatation + érosion (arrondit les objets et remplit les trous) Outline: génère les contours (ligne de 1 pixel) Watershed: sépare des objets attachés Voronoi: sépare des zones autour des objets Utiliser aussi Process/ImageCalculator pour faire des opérations sur les images (pixel à pixel)

16 16 Films ImageJ peut représenter plusieurs images successives en temps ou en volume dans la même fenêtre : ce type de fichier est appelé stacks (pile). Les images dune pile sont appelées slice ou frame. On appelle voxel (volumetric pixel) un élément dune pile dimage 3D. Commandes disponibles : Image/stacks : add slice delete slice next slice previous slice set slice Ouvrir image : file/open samples « confocal series » Générer les vues xz et yz (orthogonal views) Evaluer le volume du noyau images to stack stack to image make montage reslice orthogonal views z project 3D project plot z axis profile label tools

17 Images numériques et analyse dimages Macros, plugins et scripts Enregistrement et exécution de macros Langage de programmation Java Ecriture de macros Conditions, itérations et boucles Utiliser une macro existante Gestion des fichiers Appeler une macro dans un programme Gestion des résultats dans un tableau Informations supplémentaires 17 Partie 2

18 Macros, plugins et scripts 18 Macros The easiest way to execute a series of ImageJ commands. The ImageJ macro language – a Java-like language – contains a set of control structures, operators and built-in functions and can be used to call built-in commands and other macros. Macro code is stored in text files (.txt and.ijm extensions). A macro is a simple program that automates a series of ImageJ commands. The easiest way to create a macro is to record a sequence of commands using the command recorder (Plugins Macros Record... ). Plugins Much more powerful, flexible and faster than macros (most of ImageJs built-in menu commands are actually plugins) but harder to write and debug. Plugins are written in the Java programming language (.java source files) and compiled to.class files. Scripts ImageJ uses the Mozilla Rhino interpreter to run JavaScripts. Similarly to plugins, scripts have full access to all ImageJ and Java APIs (Application Programming Interfaces) but do not need to be compiled (scripts and macros run interpretively). On the other hand, scripts lack the simplicity of macro language and feel less integrated in ImageJ.

19 19 Enregistrement de macros Exemple n°1 : Ouvrir : file/open samples/blobs Plugins/macros/record Image/adjust/threshold Apply Analyze/analyze particles Size > 20 pixel 2 ; outlines Save result sur le bureau Dans la fenêtre macro : create Enregistrer la macro dans le dossier macro Fermer la fenêtre macro Rouvrir : file/open samples/blobs Plugins/macros/install Sélectionner la macro enregistrée Plugins/macros/ nom de la macro Plugins/macros/edit nom de la macro Une fenêtre souvre, qui enregistre toutes les commandes Sauvegarde de la macro : fichier.ijm (macro3.ijm) Installation de la macro La macro sapplique à limage sélectionnée On peut aussi faire plugins/macros/run Lire le texte de la macro. Les instructions qui appellent les commandes des menus sont : run(commande,paramètres);

20 20 Ecrire une macro Exemple n°2 : /* Code source de la macro input print out calc. Ici on n'est pas dans ImageJ, pas besoin de « _ » dans le nom de la classe */ macro "input_print_out_calc" { a = getNumber("a?", 10); b = getNumber("b?", 5); c = a*b; print("\\Clear"); print(c); //Affichage du texte } Plugins/new/macro Écrire le texte de la macro : Syntaxe : Il ny a pas despace dans les noms de macro, seulement _. La première lettre est toujours une lettre en minuscule. { et } entourent les instructions de la macro (bloc) Chaque instruction se termine par ; Il nest pas nécessaire de définir les variables Les fonctions renvoient une valeur, il ny a pas despace dans les noms de fonction. La première lettre est toujours une lettre en minuscule. Les commentaires sont entourés de /* et */ Une ligne de commentaire est précédée de // Sauvegarder la macro : format txt macro1.txt

21 21 Faire fonctionner une macro Plugins/Macro/Install Charger la macro sauvegardée précédemment Une ligne input_print_out_calc apparait en bas de la fenêtre Plugins/Macro Exécuter la macro en cliquant sur Plugins/Macro/input_print_out_calc On peut modifier la macro en utilisant Plugins/Edit Modifier la macro pour quelle calcule (a-b)/(a+b) au lieu de ab et quelle écrive « (a-b)/(a+b) = » puis la valeur calculée.

22 22 Conditions Condition unique : if if(la_condition) {bloc de code pour la condition juste} else {bloc de code pour la condition fausse} Pour plus dune condition : switch switch(variable_a_tester) { case 1 : valeur n°1 du test bloc de code Break; case 2 : valeur n° du test bloc de code break; …etc… } default : Bloc de code si aucun case n'est vrai break ; } Dans la macro précédente, écrire une condition sur le signe de a et b Syntaxe : L'égalité entre deux nombres a et b se teste comme ceci : a == b != : différent > : supérieur = : supérieur ou égal <= : inférieur ou égal Note : « case » doit toujours être un entier

23 23 Itérations et boucles Itérations : for for(init_compteur;valeur_de_fin;incrementation_du_compteur) { bloc de code à répéter } Boucles : while et do while(condition à tester) { bloc de code pour la condition juste } do { bloc de code pour la condition juste } while(condition à tester) Note : le bloc est éxécuté au moins une fois Application : écrire une macro qui calcule n! = n.(n-1).(n-2)…3.2.1, pour n>0

24 24 Ecrire une macro Exemple n°3 : Ouvrir : file/open samples/confocal series A laide dune boucle « for » appliquer la macro aux 25 images du stack Ecrire une macro qui sépare les canaux rouge et vert, et calcule laire totale de laire verte, sur 1 image Enregistrer laire du noyau en fonction de z. Sachant que les coupes sont séparées de z = 1 µm, calculer le volume du noyau.

25 25 Utiliser une macro existante Exemple n°4 : Charger la macro « ParticleLabelingExample » : plugins/macros/install et choisir la macro correspondante Exécuter la macro : cliquer sur le nom de la macro dans plugins/macros Observer ce quelle fait Visualiser le texte de la macro : plugins.macros/edit Pour bien comprendre les instructions, ouvrir « Image-J user guide.pdf » et « ImageJMacroLanguage.pdf », la liste des fonctions est page 8 Réutiliser cette macro pour analyser les colonies de limage File/Open samples/Cell Colony (31K) - Réajuster le « threshold » - Inclure une instruction « Subtract background » - Colorer les colonies avec « Image/Lookup table/3-3-2 RGD - Sauvegarder la macro sous « ParticleLabelingExample2 »

26 Gestion des fichiers 26 Ouvrir un fichier : open("/chemin + nom complet du fichier") Opens and displays a tiff, dicom, fits, pgm, jpeg, bmp, gif, lut, roi, or text file. Displays an error message and aborts the macro if the specified file is not in one of the supported formats, or if the file is not found. Displays a file open dialog box if path is an empty string or if there is no argument. Use the File>Open command with the command recorder running to generate calls to this function. Sauvegarder un fichier : saveAs("nom de la fenêtre à sauver", "/chemin + nom complet du fichier") Saves the active image, lookup table, selection, measurement results, selection XY coordinates or text window to the specified file path. The format argument must be "tiff", "jpeg", "gif", "zip", "raw", "avi", "bmp", "fits", "png", "pgm", "text image", "lut", "selection", "measurements", "xy Coordinates" or "text". Use saveAs(format) to have a "Save As" dialog displayed. Fermer une image : close() Closes the active image. This function has the advantage of not closing the "Log" or "Results" window when you meant to close the active image. Note : il est commode de travailler sur un ensemble dimages en utilisant « stack »

27 Appeler une macro existante dans un programme 27 Exécuter une commande : run("command"[, "options"]) Executes an ImageJ menu command. The optional second argument contains values that are automatically entered into dialog boxes (must be GenericDialog or OpenDialog). Use the Command Recorder (Plugins>Macros>Record) to generate run() function calls. Use string concatentation to pass a variable as an argument. For examples, see the ArgumentPassingDemo macro. Exécuter une macro: runMacro(name) Runs the specified macro file, which is assumed to be in the Image macros folder. A full file path may also be used. The ".txt" extension is optional. Returns any string argument returned by the macro. May have an optional second string argument that is passed to macro. For an example, see the CalculateMean macro. See also: eval and getArgument. Utiliser un programme préenregistré dans ImageJ call("class.method", arg1, arg2,...) Calls a public static method in a Java class, passing an arbitrary number of string arguments, and returning a string. Refer to CallJavaDemo for an example.

28 Gestion des résultats dans un tableau 28 Ajouter des data à un tableau existant : setResult("Column", row, value) Adds an entry to the ImageJ results table or modifies an existing entry. The first argument specifies a column in the table. If the specified column does not exist, it is added. The second argument specifies the row, where 0<=row<=nResults. (nResults is a predefined variable.) A row is added to the table if row=nResults. The third argument is the value to be added or modified. Call setResult("Label", row, string) to set the row label. Call updateResults() to display the updated table in the "Results" window. For examples, see the SineCosineTable and ConvexitySolidarity macros. Mettre à jour un tableau existant : updateResults() Call this function to update the "Results" window after the results table has been modified by calls to the setResult() function. Récupérer une valeur du tableau de résultats : getResult("Column", row) Returns a measurement from the ImageJ results table or NaN if the specified column is not found. The first argument specifies a column in the table. It must be a "Results" window column label, such as "Area", "Mean" or "Circ.". The second argument specifies the row, where 0<=row

29 Infos supplémentaires 29 Documentation et téléchargement de macros : Commandes dimageJ : « Image-J user guide.pdf » Programmation des macros dimageJ : « ImageJMacroLanguage.pdf » Langage Java pour ImageJ : « javapourimagej_final » Analyse de colocalisation :

30 Images numériques et analyse dimages Recherche de colonies Comptage de cellules Partie 3 : auto-entraînement

31 1. Recherche de colonies Ouvrir limage : « spots » Chercher les colonies sombres sur les images rouges et vertes Créer une image composite avec les images binaires obtenues Conserver les colonies qui sont visibles à la fois en rouge et en vert dans une image binaire et les compter

32 2. Comptage de cellules Lire la notice des lames de numération Quick Read A laide du microscope, définir la taille dun champ de prise de vue du microscope à lobjectif 5x et 10x. En déduire la relation entre le nombre de cellules comptées et la densité de cellules initiale. Ouvrir les images « propidium iodide.jpg » et « fluorescein diacetate.jpg ». Les marquages fluorescein diacetate et propidium iodide correspondent aux cellules dont la membrane plasmique est intacte ou perméable, respectivement. Ecrire une macro qui : - demande à lutilisateur si limage est 5x ou 10x - crée une image composite - compte le nombre de cellules rouges et vertes - calcule la densité cellulaire (nombre de cellules par mL) - calcule le pourcentage de cellules vivantes (viabilité) - affiche ces résultats dans un tableau Yeast Live:Dead Assay


Télécharger ppt "Images numériques et analyse dimages Installation de Image J Structure des images numériques Mesures de distance – calibration Analyse de profil Analyse."

Présentations similaires


Annonces Google