Bordes de etiquetas#

Cuando se procesan objetos biológicos en imágenes como células y núcleos, puede tener sentido identificar todos los píxeles que se encuentran en la superficie de un objeto. Este cuaderno demuestra cómo seleccionar píxeles en el borde de los núcleos, en caso de que quisiéramos medir la intensidad en la envoltura nuclear.

import pyclesperanto_prototype as cle
import numpy as np
from skimage.io import imread
image = cle.asarray(imread("../../data/mitosis_mod.tif")[0:40,25:65])
image
cle._ image
shape(40, 40)
dtypefloat32
size6.2 kB
min12.0
max255.0

Luego segmentamos los núcleos.

label_image = cle.voronoi_otsu_labeling(image, spot_sigma=2, outline_sigma=1)
label_image
cle._ image
shape(40, 40)
dtypeuint32
size6.2 kB
min0.0
max4.0

A partir de la imagen de etiquetas de los núcleos, podemos extraer otra imagen de etiquetas que contiene todos los píxeles que están en el borde de las etiquetas.

edge_label_image = cle.reduce_labels_to_label_edges(label_image)
edge_label_image
cle._ image
shape(40, 40)
dtypeuint32
size6.2 kB
min0.0
max4.0

En caso de que se quisiera medir en áreas más gruesas a lo largo de los bordes, podríamos expandir los bordes.

thicker_edges = cle.dilate_labels(edge_label_image, radius=1)
thicker_edges
cle._ image
shape(40, 40)
dtypeuint32
size6.2 kB
min0.0
max4.0

Para fines de visualización, también podemos ver la imagen original con los bordes de las etiquetas superpuestos.

cle.imshow(image, continue_drawing=True)
cle.imshow(edge_label_image, alpha=0.6, labels=True)
../_images/95c99caf4314e3b3a7289336b4525ed49dcdc66beeb894e8b8d4b85964474e2b.png