如何将 3D nii gz 图像数组重塑为 2D?

问题描述 投票:0回答:1

我有很多 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

python arrays image reshape
1个回答
1
投票

根据 NiBabel 入门 指南,您可以将 NiBabel 对象转换为 numpy 数组,然后您可以使用 reshape:

无需将任何主图像数据加载到内存中即可获得此信息。当然也可以以 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)

顺便说一句,我对神经影像学一无所知,所以我不知道你要求的转换是否有意义。

© www.soinside.com 2019 - 2024. All rights reserved.