SimpleITK调整图像大小

2024-04-19 02:49:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我用SimpleITK读取一组3D卷

import SimpleITK as sitk
for filename in filenames:
    image = sitk.ReadImage(filename)

每一卷都有不同的大小、间距、原点和方向。此代码为不同的图像生成不同的值:

^{pr2}$

我的问题是:如何将图像转换为具有相同的大小和间距,以便在转换为numpy数组时它们都具有相同的分辨率和大小。比如:

import SimpleITK as sitk
for filename in filenames:
    image = sitk.ReadImage(filename)
    image = transform(image, fixed_size, fixed_spacing)
    array = sitk.GetArrayFromImage(image)

Tags: in图像imageimportforasfilename方向
1条回答
网友
1楼 · 发布于 2024-04-19 02:49:02

方法是使用具有固定/任意大小和间距的重采样函数。下面是一个代码片段,显示了这个“reference_image”空间的构造:

reference_origin = np.zeros(dimension)
reference_direction = np.identity(dimension).flatten()
reference_size = [128]*dimension # Arbitrary sizes, smallest size that yields desired results. 
reference_spacing = [ phys_sz/(sz-1) for sz,phys_sz in zip(reference_size, reference_physical_size) ]

reference_image = sitk.Image(reference_size, data[0].GetPixelIDValue())
reference_image.SetOrigin(reference_origin)
reference_image.SetSpacing(reference_spacing)
reference_image.SetDirection(reference_direction)

对于交钥匙解决方案,请看一下this Jupyter notebook,它说明了如何在SimpleITK中使用可变大小的图像进行数据扩充(上面的代码来自笔记本)。你也可以从使用的SimpleITK notebook repository找到其他笔记本。在

相关问题 更多 >