如何调整niftinii.gz医学图像文件的大小

问题描述

我有一些nii.gz格式的医学图像,它们的形状不同。我想将所有尺寸调整为相同的形状,以提供给深度学习模型,我尝试使用nibabel的resample_img(),但它破坏了我的图像。我想做一些其他功能,只是将其调整为特定形状,例如(512,512,129)。

请有人在这方面帮助我。我在这一步中停留了很多天。

解决方法

也许您可以使用此:

https://scikit-image.org/docs/dev/api/skimage.transform.html

我在其中一篇论文中看到了它。这是ScaleToFixed函数中的示例:

https://github.com/sacmehta/3D-ESPNet/blob/master/Transforms.py

这就是我的做法。我的体积为320x320x130(黑色和白色,因此没有rgb尺寸)。我想把它缩小两倍。这对我有用:

import skimage.transform as skTrans
im = nib.load(file_path).get_fdata()
result1 = skTrans.resize(im,(160,160,130),order=1,preserve_range=True)
,

您可以使用TorchIO

import torchio as tio

image = tio.ScalarImage('path/to/image.nii.gz')
transform = tio.CropOrPad((512,512,129))
output = transform(image)

如果您想保留原始视野,可以改用Resample变换。

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