Travailler avec des images#

Pour effectuer une analyse de données d’images, nous devons d’abord être capables de réaliser quelques opérations essentielles :

  • ouvrir des images

  • afficher des images

  • examiner les statistiques des pixels

Voir aussi

Ouvrir des images#

La plupart des images avec des extensions standard (tif, png, etc.) peuvent être lues en utilisant la fonction skimage.io.imread. Si votre image ne l’est pas, vous devriez consulter la documentation du format de fichier en question.

Pour utiliser imread, vous avez trois possibilités :

  • utiliser le chemin absolu vers un fichier image, par exemple imread('/Users/username/Desktop/blobs.tif')

  • utiliser un chemin relatif par rapport à votre position actuelle (vous pouvez le découvrir en utilisant la commande pwd dans une cellule), c’est-à-dire imread('../../data/blobs.tif')

  • utiliser une URL qui pointe vers un fichier image, par exemple depuis le dépôt GitHub imread('https://github.com/haesleinhuepf/BioImageAnalysisNotebooks/raw/main/data/blobs.tif')

Ici, nous utilisons un chemin relatif. Par rapport au notebook actuel, les données se trouvent deux niveaux de dossiers plus haut (../../) dans un dossier appelé data :

from skimage.io import imread

image = imread("../../data/blobs.tif")

Comme montré précédemment, les images ne sont que des matrices d’intensités. Cependant, les afficher en tant que telles n’est pas pratique.

image
array([[ 40,  32,  24, ..., 216, 200, 200],
       [ 56,  40,  24, ..., 232, 216, 216],
       [ 64,  48,  24, ..., 240, 232, 232],
       ...,
       [ 72,  80,  80, ...,  48,  48,  48],
       [ 80,  80,  80, ...,  48,  48,  48],
       [ 96,  88,  80, ...,  48,  48,  48]], dtype=uint8)

Afficher des images#

Il existe de nombreuses façons d’afficher des images 2D simples. Dans de nombreux notebooks et exemples en ligne, vous trouverez des exemples utilisant la fonction imshow de Matplotlib sur un tableau :

from matplotlib import pyplot as plt

plt.imshow(image);
../_images/d5aa543df73b55131a5b2d12b65cdc2e300dad7a934c6fafbd5f36b49dac1a12.png

Malheureusement, la fonction imshow n’est pas un choix optimal pour afficher des images de microscopie : elle ne gère pas bien les données multi-canaux, il est difficile de gérer les plages d’intensité, etc. Tout au long de ce cours, nous préférons donc utiliser la fonction microshow du package microfilm ou la fonction imshow du package clesperanto. Nous apprendrons la deuxième solution dans les chapitres à venir. Ici, nous utilisons simplement microshow :

from microfilm.microplot import microshow
microshow(image);
../_images/86f9061a06b2f20b3ed3ddd41075e98754f485f36a8cd0d44daae4545e43ad8f.png

Tables de correspondance (alias cartes de couleurs)#

Nous pouvons également modifier la table de correspondance, aussi appelée “carte de couleurs” pour la visualisation.

microshow(image, cmaps="hot");
../_images/fecc9298b39e8e99284bb1fed5d27c53967aa0c464bb992c0a1370ba7fdf32e5.png
microshow(image, cmaps="pure_cyan");
../_images/ea5543ae72928f06f82dae87c2abc96ec002c347178571a949e44685aab380bd.png

Exercice#

Ouvrez le jeu de données banana020.tif, visualisez-le avec une table de correspondance jaunâtre.