要开始学习处理fMRI的数据了。
fMRI的数据一般有 dcm 格式和 nii 格式。
Nifti(Neuroimaging Informatics Technology Initiative,神经影像信息学技术倡议)文件格式,是目前各大神经影像分析工具普遍兼容的体素水平的数据格式,也是在进行神经影像研究中最常见的一种数据格式。它是一个三维数组 (sMRI)或者四维数组 (fMRI、dMRI),再套上一个头部数据。数组里包含的就是图像体素值数据本身,头部数据里包含空间和体素信息。
Matlab从2017b后就引入了专门的Nifti文件的解析函数,SPM12(Statistical Parametric Mapping,统计参数映射)。
一、使用matlab工具包SPM12读取fMRI数据(*.nii)
(1)首先得安装工具包SPM12,我参考的是下面这篇博客:
在matlab下安装spm工具_spmas包matlab-CSDN博客
(2)使用SPM12读取数据,举例如下:
Matlab
inputDir='D:\2_chenfang_labs\ECG-fMRI\result_removePhysio_40sub';
num=40; % number of subject
subSample=dir([inputDir,filesep]);
for i=1:num
sub=i+2;
imgNameSample = dir([inputDir,filesep,subSample(sub,1).name,filesep,'*.nii']);
imgnum=length(imgNameSample);
for jj=1:imgnum
Dir_img=[inputDir,filesep,subSample(sub,1).name,filesep,imgNameSample(jj).name];
vSub=spm_vol(Dir_img); dim=vSub.dim; mat=vSub.mat;
imgSub=spm_read_vols(vSub);
data=reshape(imgSub,dim(1)*dim(2)*dim(3),1);
data(isnan(data))=0;
data1(jj,:,:,:)=data;% 读取fMRI数据
end
end