将一个Nifti标题复制到另一个

时间:2017-11-15 17:24:14

标签: matlab header nifti

我有一个' prob_map' matlab中的变量(概率图),我想把它保存在' .nii'格式。我用2行代码完成了它:

 nii = make_nii(prob_map); 
 save_nii(nii,'prob.nii');

这已成功完成,但标题信息与名为' img.nii'的原始CT图像不兼容。 (因此在ITK-SNAP软件中,不可能在图像上覆盖prob_map)。我想将img.nii的标题复制到' prob.nii'保存之前的标题。事实上,只要有可能,我想复制一个标题。例如,可以复制方向和其他信息时无法复制标题大小。 在保存nii之前是否有任何功能可以将一个标题复制到另一个?必须复制哪些信息以保持两个nii相同?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用spm matlab library

# Grab header from an existing file (and optionally, get the data)
HeaderInfo  = spm_vol('img.nii')          # use spm_vol to read file header
NiftiData   = spm_read_vol(HeaderInfo)    # use spm_read_vol to get data

# Update the header contents to correspond with your new data
HeaderInfo.fname = 'prob.nii';
HeaderInfo.private.dat.fname = HeaderInfo.fname;

# Save the file with the adapted Header
spm_write_vol(HeaderInfo,Data);           # where Data is your image array