【发布时间】:2019-01-25 17:26:50
【问题描述】:
我对 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)
【问题讨论】:
-
你可能想看看这个问题:stackoverflow.com/questions/36996353/…
-
@kritzel_sw 感谢您的链接。我读过了。我试图构建转换矩阵但仍然失败。您能否制定如何为给定场景构建转换矩阵。非常感谢。