因此,如果我有一个图像(CT、MRI等)甚至是放射治疗的剂量,我可以通过以下方式将剂量或图像值提取到一个数组中:
import dicom
ds = dicom.read_file("dicom_file.dcm")
print ds.pixel_array
这很简单,让我可以随心所欲地操作图像/剂量。然而,通常你也有一个包含不同轮廓结构的结构文件,你可以在图像查看器或类似的东西中看到。再说一次,非常直截了当。在
我的问题是,我也希望这些单独的结构作为一个数组。如果我运行相同的代码,我只得到TypeError: No pixel data found in this dataset.
我猜结构DICOM文件并不像dose/images DICOM文件那样“生成”。在
那么,有没有一个我还没有找到的解决办法呢?我还研究了dicompyler_core
包,但是从我所看到的情况来看,没有任何方法可以“仅仅”将不同的结构转换成数组。在
下面是一个交互式会话,演示了使用rtstruct.dcm公司pydicom附带的文件:
数据作为每个平面的一组坐标存储(在这种情况下,与通常一样)。要获取一个轮廓、一个平面的数据,可以使用
^{pr2}$这些是(x,y,z)坐标的三元组。在
您可以在
StructureSetROISequence
序列中找到关于每个轮廓(名称等)的更多信息,对于由参考的ROI编号给出的索引。在您可以通过循环该特定轮廓的ContourSequence中的每个数据集并将它们附加到一个数组中,从而获得所有这些数据的完整数组。在
相关问题 更多 >
编程相关推荐