步骤1:参考CSDN博主「咸鱼酱」,使用Matlab和SPM软件包将hdr/img格式的文件转成nii格式
原文链接:CSDN博主「咸鱼酱」的原创文章:https://blog.csdn.net/Lyrassongs/article/details/88544903
%%img2nii.m--------------------------------------------
%Script to convert hdr/img files to nii.
%This script uses SPM function, so you need to install SPM5 or later.
%Kiyotaka Nemoto 05-Nov-2014
%select files
f = spm_select(Inf,'img$','Select img files to be converted');
%convert img files to nii
for i=1:size(f,1)
input = deblank(f(i,:));
[pathstr,fname,ext] = fileparts(input);
output = strcat(fname,'.nii');
V=spm_vol(input);
ima=spm_read_vols(V);
V.fname=output;
spm_write_vol(V,ima);
end
步骤2:将nii文件打包成nii.gz文件(我发现这个方法是把每个.nii文件打包成一个.nii.gz,也就是说一个run有200个时间点,每个时间点有一个3D的.nii文件,那么这个方法就会转出200个.nii.gz文件)
gzip('niftifilename.nii') % this will return niftifilename.nii.gz
gzip('*.nii') % for multiple nii files to create one .nii.gz
gzip({'*.nii'},outputdir)
%zip all your nii files into a nii.gz and place it into outputdir.
步骤3:把3D的nii文件按照时间连接起来,成为一个nii.gz的4D文件(这是FSL使用的文件格式)
fslmerge -t ~/桌面/alcohol/sbj01/A_01 ~/桌面/alcohol/sbj01/*nii
#这句代码说明把~/桌面/alcohol/sbj01/这个地址下的所有.nii文件按照时间顺序连起来
#然后保存为~/桌面/alcohol/sbj01/这个地址下的A_01.nii.gz文件
使用这个函数需要装FSL(需要linux或mac系统),下面是fslmerge的使用说明:
Usage: fslmerge <-x/y/z/t/a/tr> <output> <file1 file2 .......> [tr value in seconds]
-t : concatenate images in time
-x : concatenate images in the x direction
-y : concatenate images in the y direction
-z : concatenate images in the z direction
-a : auto-choose: single slices -> volume, volumes -> 4D (time series)
-tr : concatenate images in time and set the output image tr to the final option value