如何调整nifti(nii.gz医学图像)文件的大小



我有一些nii.gz格式的医学图像,它们有不同的形状。我想将所有图像调整为相同的形状,以便提供给深度学习模型,我尝试使用nibel的resample_img((,但它会破坏我的图像。我想做一些其他的功能,只是把它调整到一个特定的形状,比如(512512129(。

请有人在这方面帮助我。我在这一步上被困了好几天。

也许你可以使用这个:

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的主要开发者。

这个问题已经有一段时间了,我会提供一个对我有效的答案,希望能帮助其他人!

patient = r'/Data_folder' # string containing path to image
file_name = os.path.basename(patient)
image = tio.ScalarImage(patient)
transform = tio.CropOrPad((480, 480, 360))
output = transform(image)
save_path1 = r'/Data_folder/resized/'
if os.path.exists(save_path1):
print('Path exists defining save path')
save_path = save_path1 + file_name 
else:
print('Path doesnt  exists creating path and defining save path')
os.mkdir(save_path1)
save_path = save_path1 + file_name 
output.save(save_path)

最新更新