Как преобразовать массив 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)

Между прочим, я ничего не знаю о нейровизуализации, поэтому я не знаю, имеет ли смысл трансформация, о которой вы просите.

Другие вопросы по тегам