首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不加载fMRI大数据的情况下访问.nii (NIFTI)格式的单个时间样本?

如何在不加载fMRI大数据的情况下访问.nii (NIFTI)格式的单个时间样本?
EN

Stack Overflow用户
提问于 2019-07-30 06:44:14
回答 1查看 108关注 0票数 4

我可以访问我有1000多个.nii文件的The Human Connectome Project数据。为了分析它们,我需要将它们加载为一个numpy数组,这会占用大量内存。例如,考虑以下代码:

代码语言:javascript
复制
import nibabel as nib
epi_image = nib.load('rfMRI_REST1_LR.nii')
epi_image.shape
out: (91, 109, 91, 1200)
epi_data = epi_image.get_data()

最后一条线给出了一个4d张量,其中最后一个轴是时间。由于epi_data是一种5Gb格式,我们可以使用它来训练神经网络,将其转换为张量,但要做到这一点,我们需要加载总数据,该数据是numpy,而这只是1000个数据中的一个。但是,如果我可以将这1200个时间样本分解为1200 .nii,我将能够加载感兴趣的那些。有没有办法从原始文件中提取1200 .nii

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-01 06:04:27

从原始文件中提取1200 .nii的方法是分别提取每个帧:

代码语言:javascript
复制
for idx in range(1200):
 epi_data = epi_image.get_data()[:,:,:,idx]
 nimg = nib.Nifti1Image(epi_data, affine=epi_image.affine, header=epi_image.header)
 nimg.to_filename("file%idx.nii"%+int(idx))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57262225

复制
相关文章

相似问题

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