问题描述
我有一些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的主要开发人员。