Visualisation des propriétés des régions dans napari#

La visualisation des mesures quantitatives des régions en couleur par-dessus les régions est une tâche courante lors de l’utilisation de napari. Le plugin napari napari-skimage-regionprops apporte une certaine commodité pour dessiner de telles images paramétriques.

Voir aussi

  • Images paramétriques

from skimage.io import imread
from skimage.filters import threshold_otsu
from skimage.measure import label, regionprops_table
import napari
from napari_skimage_regionprops import visualize_measurement_on_labels, add_table

Nous commençons par charger une image et la visualiser dans napari.

image = imread('../../data/blobs.tif')
# Créer un visualiseur vide
viewer = napari.Viewer()
/Users/haase/opt/anaconda3/envs/bio_39/lib/python3.9/site-packages/napari_tools_menu/__init__.py:168: FutureWarning: Public access to Window.qt_viewer is deprecated and will be removed in
v0.5.0. It is considered an "implementation detail" of the napari
application, not part of the napari viewer model. If your use case
requires access to qt_viewer, please open an issue to discuss.
  self.tools_menu = ToolsMenu(self, self.qt_viewer.viewer)
# Ajouter une nouvelle couche contenant une image
viewer.add_image(image)

napari.utils.nbscreenshot(viewer)

Ensuite, nous segmentons les taches dans l’image et créons une image d’étiquettes.

# segmenter et étiqueter les taches
threshold = threshold_otsu(image)
binary_image = image > threshold
label_image = label(binary_image)

# ajouter les étiquettes au visualiseur
label_layer = viewer.add_labels(label_image)

napari.utils.nbscreenshot(viewer)

Mesures quantitatives#

Nous extrayons maintenant des mesures quantitatives de l’image d’étiquettes, par exemple en mesurant la surface des objets étiquetés. Pour cela, nous utilisons la fonction regionprops_table de scikit-image. Nous sauvegardons ces mesures statistiques dans les properties de la couche d’étiquettes afin que napari et les plugins napari puissent post-traiter les données.

# mesurer les propriétés des régions
statistics = regionprops_table(label_image, properties=['area'])

# sauvegarder les propriétés dans la couche d'étiquettes pour une réutilisation ultérieure
label_layer.properties = statistics

Nous utilisons ensuite le plugin napari scriptable napari-skimage-regionprops pour visualiser les mesures dans une image_paramétrique et ajouter cette image au visualiseur napari également.

parametric_image = visualize_measurement_on_labels(label_layer, 'area')

viewer.add_image(parametric_image, colormap='jet')

napari.utils.nbscreenshot(viewer)

Nous pouvons également visualiser les mesures sous forme de tableau en utilisant la fonction add_table du même plugin napari.

add_table(label_layer, viewer)

napari.utils.nbscreenshot(viewer)

Exercice#

Mesurez le rapport d’aspect des objets et visualisez les valeurs en couleur.