考虑具有两种结构的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())