Propiedades regionales de la etiqueta#

En este notebook caracterizamos las etiquetas de acuerdo con la media y la desviación estándar de sus propiedades, como el tamaño. Si objetos de tamaño similar son vecinos, la desviación estándar de su tamaño es baja. Si las etiquetas de diferentes tamaños son vecinas, la desviación estándar de su tamaño es más alta. Esto podría usarse para identificar regiones en tejidos donde se encuentran células de diferentes tamaños.

from skimage.io import imread
import pyclesperanto_prototype as cle
import stackview

Los datos que usamos aquí se derivaron de maize_clsm.tif y se tomaron de aquí, una imagen compartida por David Legland bajo la licencia CC-BY 4.0

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

stackview.insight(image)
shape(640, 639)
dtypeuint8
size399.4 kB
min0
max255

Una imagen de etiquetas correspondiente se ve así:

labels = imread("../../data/maize_clsm_labels.tif")
labels = cle.exclude_small_labels(labels, maximum_size=200)
labels = cle.extend_labeling_via_voronoi(labels)
labels
cle._ image
shape(640, 639)
dtypeuint32
size1.6 MB
min1.0
max254.0

Midiendo el tamaño#

Primero necesitamos cuantificar el tamaño de los objetos. Podemos visualizar inmediatamente estas mediciones como una imagen paramétrica.

size_map_image = cle.pixel_count_map(labels)

size_map_image
cle._ image
shape(640, 639)
dtypefloat32
size1.6 MB
min201.0
max14283.0

Propiedades regionales#

Ahora podemos resumir esas mediciones localmente, por ejemplo, midiendo el tamaño medio de cada célula y sus correspondientes vecinos que la tocan.

cle.mean_of_touching_neighbors_map(size_map_image, labels)
cle._ image
shape(640, 639)
dtypefloat32
size1.6 MB
min369.33334
max7611.5

También podemos calcular la desviación estándar del tamaño, lo que resalta los bordes entre las regiones con células de diferentes tamaños.

cle.standard_deviation_of_touching_neighbors_map(size_map_image, labels)
cle._ image
shape(640, 639)
dtypefloat32
size1.6 MB
min43.538486
max3917.1946