对齐两个DICOM序列

问题描述 投票:0回答:1

我完全新的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的特定片段的2个系列的Z值或指数?

我使用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)
dicom pydicom simpleitk
1个回答
1
投票

这听起来像你想重新取样一个图像到另一个让他们有匹配的像素大小和尺寸。如果是这样你可以使用ResampleImageFilter或重新取样功能。以下是他们的文档页面。

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

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

其基本思想是建立图像坐标一个图像的系统,然后告诉重新取样使用该系统采样其他图像。

© www.soinside.com 2019 - 2024. All rights reserved.