首页 > 解决方案 > 如何计算 SimpleITK 图像上掩码的第 10 和第 90 百分位数

问题描述

我想计算在 simpleITK 图像上绘制的蒙版中像素的第 10 和第 90 百分位数。我只能得到平均值。

我使用以下代码:

img = sitk.ReadImage(image_path)
label = sitk.ReadImage(label_path)

labelstatsFilter = sitk.LabelIntensityStatisticsImageFilter()
labelstatsFilter.Execute(label, img)
mean = labelstatsFilter.GetMean(1)

我找不到计算百分位数的方法,除非我可以将掩码转换为 numpy 数组。我找不到一种方法来使用 GetArrayfromImage 方法来处理蒙版,因为它适用于主图像。

标签: pythonhistogrampercentilesimpleitk

解决方案


解决方案:

使用 np.extract 提取数组的掩码值,然后使用 np.percentile

例子:

img = sitk.ReadImage(image_path)
label = sitk.ReadImage(label_path)

img = sitk.GetArrayFromImage(img)
label = sitk.GetArrayFromImage(label)

mask = np.extract(label,img)
10xpercentile= np.percentile(mask,10)

推荐阅读