标签的区域属性#

在这个笔记本中,我们根据标签属性的平均值和标准差来表征标签,例如大小。如果相似大小的对象是邻居,它们的大小标准差就低。如果不同大小的标签是邻居,它们的大小标准差就会更高。这可以用来识别组织中不同大小的细胞相遇的区域。

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

我们在这里使用的数据源自maize_clsm.tif,该数据来自这里,这是David Legland在CC-BY 4.0许可下共享的图像

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

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

相应的标签图像如下所示:

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

测量大小#

首先,我们需要量化对象的大小。我们可以立即将这些测量结果可视化为参数图像。

size_map_image = cle.pixel_count_map(labels)

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

区域属性#

现在我们可以在局部范围内总结这些测量结果,例如,通过测量每个细胞及其相应接触邻居的平均大小。

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

我们还可以计算大小的标准差,这突出了不同大小的细胞区域之间的边界。

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