Visualización de propiedades de regiones en napari#

Visualizar mediciones cuantitativas de regiones en color sobre las regiones es una tarea común al usar napari. El complemento de napari napari-skimage-regionprops ofrece algunas facilidades para dibujar dichas imágenes paramétricas.

Ver también

  • Imágenes paramétricas

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

Comenzamos cargando una imagen y visualizándola en napari.

image = imread('../../data/blobs.tif')
# Crear un visor vacío
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)
# Agregar una nueva capa que contiene una imagen
viewer.add_image(image)

napari.utils.nbscreenshot(viewer)

A continuación, segmentamos los blobs en la imagen y creamos una imagen de etiquetas.

# segmentar y etiquetar blobs
threshold = threshold_otsu(image)
binary_image = image > threshold
label_image = label(binary_image)

# agregar etiquetas al visor
label_layer = viewer.add_labels(label_image)

napari.utils.nbscreenshot(viewer)

Mediciones cuantitativas#

Ahora extraemos mediciones cuantitativas de la imagen de etiquetas, por ejemplo, midiendo el área de los objetos etiquetados. Para eso, usamos la función regionprops_table de scikit-image. Guardamos esas mediciones estadísticas en las propiedades de la capa de etiquetas para que napari y los complementos de napari puedan procesar posteriormente los datos.

# medir propiedades de las regiones
statistics = regionprops_table(label_image, properties=['area'])

# guardar propiedades en la capa de etiquetas para su reutilización posterior
label_layer.properties = statistics

Luego usamos el complemento de napari programable napari-skimage-regionprops para visualizar las mediciones en una imagen_paramétrica y agregar esa imagen al visor de napari también.

parametric_image = visualize_measurement_on_labels(label_layer, 'area')

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

napari.utils.nbscreenshot(viewer)

También podemos visualizar las mediciones como una tabla usando la función add_table del mismo complemento de napari.

add_table(label_layer, viewer)

napari.utils.nbscreenshot(viewer)

Ejercicio#

Mide la relación de aspecto de los objetos y visualiza los valores en color.