我有一套 3D 书籍正在阅读SimpleITK
import SimpleITK as sitk
for filename in filenames:
image = sitk.ReadImage(filename)
每卷都有不同的大小、间距、来源和方向。此代码为不同的图像生成不同的值:
print(image.GetSize())
print(image.GetOrigin())
print(image.GetSpacing())
print(image.GetDirection())
我的问题是:如何将图像转换为具有相同的尺寸和间距,以便在转换为时它们都具有相同的分辨率和尺寸numpy
数组。就像是:
import SimpleITK as sitk
for filename in filenames:
image = sitk.ReadImage(filename)
image = transform(image, fixed_size, fixed_spacing)
array = sitk.GetArrayFromImage(image)
实现此目的的方法是使用具有固定/任意大小和间距的重新采样功能。下面是显示此“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)
对于交钥匙解决方案,请查看这个 Jupyter 笔记本它说明了如何在 SimpleITK 中使用可变大小的图像进行数据增强(上面的代码来自笔记本)。您可以从以下位置找到其他笔记本SimpleITK 笔记本存储库也有使用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)