Image processing 如何在正确的位置覆盖RTDOSE和图像数据?

Image processing 如何在正确的位置覆盖RTDOSE和图像数据?,image-processing,dicom,pydicom,image-registration,Image Processing,Dicom,Pydicom,Image Registration,我目前是医学物理学硕士的学生,我非常需要能够将RTDOSE文件中的等剂量分布覆盖到.dcm文件集中的CT图像上 我自己用pydicom和dicom_numpy提取了图像和剂量像素阵列,但这两个阵列的大小不一样!因此,如果我将两者叠加在一起,根据Elekta Gamma Plan软件导出的结果,剂量将不在正确的位置 我使用过dicompyler和3DSlicer,它们显然能够做到这一点,即使阵列大小不同。但是,我认为我不能在使用这些软件时导出数值数据。我只能滚动浏览并将其作为图像查看。如何将RTD

我目前是医学物理学硕士的学生,我非常需要能够将RTDOSE文件中的等剂量分布覆盖到.dcm文件集中的CT图像上

我自己用pydicom和dicom_numpy提取了图像和剂量像素阵列,但这两个阵列的大小不一样!因此,如果我将两者叠加在一起,根据Elekta Gamma Plan软件导出的结果,剂量将不在正确的位置

我使用过dicompyler和3DSlicer,它们显然能够做到这一点,即使阵列大小不同。但是,我认为我不能在使用这些软件时导出数值数据。我只能滚动浏览并将其作为图像查看。如何将RTDOSE叠加到CT图像上


谢谢你所想要的,听起来你应该使用(或同等的-我的经验是sitk)来处理dicom,而不是pydicom

Dicom为患者坐标中的所有像素数据构建了一个完整的3D点和位置规范系统。这将使用图像平面模块标记集中dicom文件中的一组属性。有关良好的概述,请参阅

simple ITK library完全理解并使用完整的3D图像平面标签来识别和定位默认情况下患者坐标中的任何图像,而不考虑具体像素间距、切片厚度等


因此,在您的案例中,如果您使用SITK打开您的研究,那么您应该能够“开箱即用”地正确覆盖它们,因为SITK将完成解析图像平面模块标签和在患者坐标中定位数据的所有工作,就像您使用3DSlicer一样

相反,Pydicom本身根本不尝试使用这些信息。它只提供原始像素阵列(用于图像)


注:我同时使用pydicom和SITK。这并不是pydicom的缺点,更重要的是它是否适合这项工作。事实上,对于许多(大多数?)我使用pydicom的东西,但对于任何真正的3D类型的工作,SITK是更容易使用的工具包。

我不确定,因为我没有使用RTDose的经验,但是:在dicom中,你不仅有像素阵列,还有像素间距标签。这是非常重要的。因为CT可能有512x512像素,像素间距为1.0x1.0mm。这意味着图像是512mm乘以512mm。RTDose只有100x100像素,但像素间距为5.12x5.12mm。然后剂量中的每个像素都更大,但整个图像也是512mm乘以512mm。这只是一个假设,但请看一看。我可以假设RTDose数据与您要显示的序列处于同一参考框架内吗?(即省略注册步骤)。@bastijn我猜是的,因为它看起来像3DSlicer“能够做到这一点”,并且很可能RT数据是为该CT生成的。。。我也不想(在下面)进入一个新的复杂层次,如果FOR不是同一个lol,就必须进行注册!