Mic*_*lle 6 python file-format numpy nifti
我有一个numpy数组,我想转换成一个nifti文件.通过文档,似乎PyNIfTI用于执行此操作:
image=NiftiImage(Array)
Run Code Online (Sandbox Code Playgroud)
但是,不再支持PyNIfTI.PyNIfTI的继任者NiBabel似乎不支持这个功能.我肯定错过了什么.有谁知道如何做到这一点?
Oli*_* W. 14
将调用更新的NiBabel包中的替换功能Nifty1Image.但是,您需要传递仿射变换,该仿射变换定义该图像相对于某个参照系的位置.
在最简单的形式,它看起来像这样:
import nibabel as nib
import numpy as np
data = np.arange(4*4*3).reshape(4,4,3)
new_image = nib.Nifti1Image(data, affine=np.eye(4))
Run Code Online (Sandbox Code Playgroud)
您也可以使用写入NIfTI-2文件格式Nifti2Image,这也需要仿射变换.
接受的答案就足够了。我为此添加了几行详细解释。
import nibabel as nib
import numpy as np
data = np.arange(4*4*3).reshape(4,4,3)
new_image = nib.Nifti1Image(data, affine=np.eye(4))
Run Code Online (Sandbox Code Playgroud)
该函数np.eye(n)返回一个由 n 组成的单位矩阵。
此处,它np.eye(4)用于生成 4 x 4 矩阵,因为 Nifti 处理 4 x 4 文件格式。因此,通过与 4 x 4 单位矩阵相乘,将 3 x 3 矩阵转换为 4 x 4 矩阵。
所以,总是affine = np.eye(4)会起作用。
同样适用于Nifti1Image和Nifti2Image
| 归档时间: |
|
| 查看次数: |
6979 次 |
| 最近记录: |