问题描述:已知图像矩阵,想要输出该矩阵为.nii(nifty)格式的图像并保存.
解决办法:利用matlab进行编程,载入nii格式文件,然后更改头文件并写出,最后导出目标文件.
注:需要在matlab下加载Nifti程序包,下载地址及使用方法:Nifti程序包
程序:
%读取nii文件
nii=load_nii('xxx.nii'); %载入nii文件
matrix_img = nii.img; %读取nii文件下的img矩阵
%将生成的ADC图导出为nii格式的图像
file1='xxx.nii';%导入一张与目标图像维度相同的nii图像
%这一步的目的是为了方便导出目标nii图像,导入一张已有的图像之后,我们只用更改像素矩阵和头文件名即可
v=spm_vol(file1);%v代表头文件
v.fname='test.nii';%更改输出文件名,否则会覆盖原文件
%v.dt=[16 0]; %将显示精度扩大到小数点后16位,当目标图像显示精度需要调整时可更改此数值
spm_write_vol(v,matrixD); %将更改过显示精度的头文件写入矩阵中
生成的.nii格式的图像就保存在了matlab当前工作路径中,保存文件名为"test.nii"