如何在SimpleITK图像上计算蒙版的第10和第90个百分位数

问题描述 投票:0回答:1

我想计算在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方法来处理遮罩的方法,因为它适用于主图像。

python histogram percentile simpleitk
1个回答
0
投票

解决方案:

使用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)
© www.soinside.com 2019 - 2024. All rights reserved.