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