Ränder von Beschriftungen#

Bei der Verarbeitung biologischer Objekte in Bildern wie Zellen und Zellkernen kann es sinnvoll sein, alle Pixel zu identifizieren, die auf der Oberfläche eines Objekts liegen. Dieses Notebook zeigt, wie man Pixel am Rand von Zellkernen auswählt, falls wir die Intensität in der Kernhülle messen möchten.

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

Dann segmentieren wir die Zellkerne.

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

Aus dem Zellkern-Beschriftungsbild können wir ein weiteres Beschriftungsbild extrahieren, das alle Pixel enthält, die sich am Rand der Beschriftungen befinden.

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

Falls man in dickeren Bereichen entlang der Ränder messen möchte, könnten wir die Ränder erweitern.

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

Zu Visualisierungszwecken können wir auch das Originalbild mit den Beschriftungsrändern darüber anzeigen.

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