0

我对 CT 图像世界完全陌生。所以提前谢谢你我有两个同一个病人的dicom系列。对于这两个系列,第一个切片信息是

Series 1 
'ImagePositionPatient',
['-205.0966796875', '-384.0966796875', '-1496.5']
'Pixelspacing',['0.806640625', '0.806640625']
slice Thickness' 2mm
Image Orientation (Patient)['1', '0', '0', '0', '1', '0']

Series 2
'ImagePositionPatient', 
['-171.650390625', '-356.650390625', '-1099.7']
'Pixelspacing', ['0.69921875', '0.69921875']
'slice Thickness', 2mm
Image Orientation (Patient)['1', '0', '0', '0', '1', '0']
In both series slices are of  512*512 in size

. 我想在系列 1 上重叠系列 2。

但是要重叠,根据我的理解,它们必须共享相同的坐标。像素间距和文件数量也存在差异。所以我的问题是:

  • 如何重叠两个系列?

  • 如何匹配指数。因为两个系列都有不同数量的切片。例如,在系列 1 中,切片索引为 220 或 Z 值为 -976,如何获取系列 1 的特定切片的 Z 值或系列 2 中的索引?

我正在使用 pydicom python 包。任何示例代码或处理此问题的想法都会很棒:)

编辑:我正在使用的 sitk.resample 代码

def resample_image(self,itk_image, ref_imge, is_label=False):
        original_spacing = itk_image.GetSpacing()
        original_size = itk_image.GetSize()
        out_spacing = ref_imge.GetSpacing()
        out_size = ref_imge.GetSize()
        resample = sitk.ResampleImageFilter()
        resample.SetOutputSpacing(out_spacing)
        resample.SetSize(out_size)
        resample.SetOutputDirection(itk_image.GetDirection())
        resample.SetOutputOrigin(ref_imge.GetOrigin()) 
        resample.SetTransform(sitk.Transform())
        resample.SetDefaultPixelValue(itk_image.GetPixelIDValue())

        if is_label:
            resample.SetInterpolator(sitk.sitkNearestNeighbor)
        else:
            resample.SetInterpolator(sitk.sitkLinear)#sitkBSpline)

        return resample.Execute(itk_image)
4

1 回答 1

1

听起来您想将一张图像重新采样到另一张图像上,以便它们具有匹配的像素尺寸和大小。如果是这样,您可以使用 ResampleImageFilter 或 Resample 函数。这是他们的文档页面。

过滤器: https ://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1ResampleImageFilter.html

功能: https ://itk.org/SimpleITKDoxygen/html/namespaceitk_1_1simple.html#ab02a58cf3633d810fac5821749b49a74

基本思想是建立一个图像的图像坐标系,然后告诉 Resample 使用该系统对另一张图像进行采样。

于 2019-01-25T19:52:59.847 回答