MATLAB读取和保存nifti文件

时间:2024-03-04 11:05:22

介绍

分析核磁数据时,数据的读取和保存是两个基本的操作。虽然大部分工具包都对这些功能进行了封装,但是如果你不了解如何使用这些工具包或者说当前的任务太简单不值得去使用这些庞大的工具包的时候就需要我们自己来实现这些基本功能了。这里给出读取和保存nifti文件的MATLAB函数。

代码

读取数据

spm_vol()
spm_read_vols()

spm_vol是将磁盘上的文件载入到内存当中,此时文件类型是结构体。spm_read_vols则读取内存结构体当中包含的数据矩阵。

img = spm_vol(\'test.nii\');
data = spm_read_vols(img);

这里的img就是test.nii文件在内存上的映射。data就是test.nii中实际的数据矩阵。通常我们需要对data进行操作。

写入文件

spm_write_vol()

该函数需要两个参数,第一个参数是内存当中的结构体,这里可以使用内存中已经存在的核磁文件在内存当中的映射。但需要注意的是,如果保留原来的文件,则需要修改该映射的fname字段。否则,在用spm_write_vol时,会覆盖原来在磁盘上的文件。第二个参数当然就是数据矩阵了。

img.fname = \'new_test.nii\';
spm_write_vol(img, new_data);