2

我有 3 个大小为 dicom 的堆栈512x512x133, 512x512x155 and 512x512x277。我想重新采样所有堆栈以制作尺寸512x512x277, 512x512x277 and 512x512x277。怎么做?

我知道我可以使用切片厚度和像素间距进行重采样。但这并不能确保在每种情况下都有相同数量的切片。

4

2 回答 2

1

您可以使用scipy.ndimage.interpolate.zoom,为每个轴指定缩放因子数组,如下所示:

# example for first image
zoomArray = desiredshape.astype(float) / original.shape
zoomed = scipy.ndimage.interpolate.zoom(original, zoomArray)

更新:

如果这太慢了,您可以尝试以某种方式从“图像立方体”的垂直切片创建单独的图像,使用一些高速图像库处理它们(有些人喜欢 ImageMagick,还有 PIL、opencv 等),并再次将它们堆叠在一起。这样,您将拍摄 512 张尺寸为 512x133 的图像并将它们调整为 512x277,然后再次堆叠为 512x512x277,这是您最终所需的尺寸。此外,这种分离将允许并行化。需要考虑的一种想法是:这只有在横轴(您将沿其切片 2D 图像的轴)不调整大小时才有效!

于 2016-07-05T03:50:31.890 回答
0

您可以在TorchIO中使用Resample转换

import torchio as tio
small, medium, large = dicom_dirs  # the folders of your three DICOMs
reference = tio.ScalarImage(large)
resample = tio.Resample(reference)
small_resampled = resample(small)
medium_resampled = resample(medium)

这三个图像现在具有相同的形状,512 x 512 x 277。

免责声明:我是 TorchIO 的主要开发者。

于 2021-02-07T16:12:09.007 回答