Как преобразовать массив 3D-изображений nii gz в 2D?
У меня есть много изображений nii.gz, которые мне нужно преобразовать из 3D в 2D, я пытаюсь использовать следующий код, но он не работает из-за расширения nii.gz:
import nibabel as nib
img = nib.load('teste01converted.nii.gz')
img.shape
newimg = img.reshape(332,360*360)
Может кто-нибудь помочь мне?
Вот пример изображений, с которыми я работаю: https://drive.google.com/drive/folders/1681T99hp6qZRUgx1Ej_h1hwFv1g_LJo4?usp=sharing .
1 ответ
Согласно руководству NiBabel Getting Started , вы можете преобразовать объект NiBabel в массив numpy, который затем позволит вам использовать изменение формы:
Эта информация доступна без необходимости загрузки каких-либо данных основного изображения в память. Конечно, есть также доступ к данным изображения в виде массива NumPy.
>>> data = img.get_fdata() >>> data.shape (128, 96, 24, 2) >>> type(data) <... 'numpy.ndarray'>
Таким образом, вы можете адаптировать свой код следующим образом:
import nibabel as nib
img = nib.load('teste01converted.nii.gz')
newimg = img.get_fdata().reshape(332,360*360)
Когда я это делаю, я получаю массив numpy с этой формой:
(332, 129600)
Между прочим, я ничего не знаю о нейровизуализации, поэтому я не знаю, имеет ли смысл трансформация, о которой вы просите.