温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - How to calculate mean dose and max dose from a RTDose (3D array) using numpy?

python - 如何使用numpy从RTDose(3D阵列)计算平均剂量和最大剂量?

发布于 2020-03-27 16:00:50

我有一个用于RTDose的3D阵列。一个用于预测,另一个用于基础事实。此外,我还有3D OAR蒙版阵列。如何计算每个OAR的平均剂量和最大剂量?

查看更多

查看更多

提问者
Radhi
被浏览
66
Radhi 2020-01-31 16:46

考虑具有两种结构的rtss,一种是PTV,第二种是GTV。以下代码用于计算PTV和GTV的平均剂量和最大剂量。载入rtss nifti文件时... PTV轮廓包含value = 1,而GTV包含value = 2。因此在获得这些轮廓的剂量时使用相同的方法。

import nibabel as nib
import numpy as np
rtss_fname="rtss0.nii.gz"
rtdose_fname="rtdose0.nii.gz"

rtss_img = nib.load(rtss_fname)
rtss_array=rtss_img.get_data()


rtdose_img = nib.load(rtdose_fname)
rtdose_array=rtdose_img.get_data()

dose_at_label1=rtdose_array[rtss_array==1]
dose_at_label2=rtdose_array[rtss_array==2]

print("PTV max dose ",dose_at_label1.max())
print("GTV max dose ",dose_at_label2.max())

print("PTV mean dose ",dose_at_label1.mean())
print("GTV mean dose ",dose_at_label2.mean())