首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从numpy数组创建nifti文件

从numpy数组创建nifti文件
EN

Stack Overflow用户
提问于 2015-02-05 04:26:02
回答 2查看 15.6K关注 0票数 9

我有一个想要转换成nifti文件的numpy数组。通过文档可以看出,PyNIfTI似乎是通过以下方式做到这一点的:

代码语言:javascript
复制
image=NiftiImage(Array)               

但是,不再支持PyNIfTI。PyNIfTI的继任者NiBabel似乎不支持此功能。我一定漏掉了什么。有人知道怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-05 04:44:46

较新的NiBabel包中的替换函数将称为Nifty1Image。但是,您需要传入定义该图像相对于某个参考系的位置的affine transformation

在其最简单的形式中,它将如下所示:

代码语言:javascript
复制
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))

您还可以使用Nifti2Image写入到NIfTI-2文件格式,这也需要仿射转换。

票数 20
EN

Stack Overflow用户

发布于 2018-11-22 17:42:04

接受的答案就足够了。我为此添加了几行详细的解释。

代码语言:javascript
复制
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))

函数np.eye(n)返回一个n乘n的单位矩阵。

这里,当Nifti处理4x4文件格式时,此np.eye(4)用于生成4x4矩阵。所以你的3乘3矩阵被转换为4乘4乘以4乘以4的单位矩阵。

所以,affine = np.eye(4)总是可以工作的。

同样适用于Nifti1ImageNifti2Image

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28330785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档