Bords des étiquettes#

Lors du traitement d’objets biologiques dans une image tels que les cellules et les noyaux, il peut être judicieux d’identifier tous les pixels qui se trouvent à la surface d’un objet. Ce notebook montre comment sélectionner les pixels sur le bord des noyaux, au cas où nous voudrions mesurer l’intensité dans l’enveloppe nucléaire.

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

Nous segmentons ensuite les noyaux.

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

À partir de l’image étiquetée des noyaux, nous pouvons extraire une autre image étiquetée qui contient tous les pixels se trouvant sur le bord des étiquettes.

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

Au cas où on voudrait mesurer dans des zones plus épaisses le long des bords, nous pourrions élargir les bords.

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

À des fins de visualisation, nous pouvons également voir l’image originale avec les bordures des étiquettes superposées.

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