mat 数据是matlab的标准数据格式
但是我用的医学图像都是 nii序列
数据处理完需要将 mat 转 nii 格式,matlab 果然比普通程序易懂~~~
首先需要下载matlab官网的load_nii文件夹
#mat2nii
clear all;
path = 'H:\data'
#mat数据所在路径
dirfile = dir(path);
#mat数据文件名
filename={dirfile.name};
#这里i从2开始是因为我手动转了第一个数据
for i=2:length(filename)
#获取所有mat数据的绝对路径
dirzip=dir(fullfile(path, filename{i}, '*.mat'))
#带扩展名的文件名称
zipname={dirzip.name};
#需要转换的数据量
for j=1:length(zipname)
#加载mat数据,并转换成nii,扩展名为.nii.gz
mat=load(fullfile(path,filename{i},zipname{j}(1:end-3)));
b=mat.f;
c=make_nii(b);
savepath=fullfile(path,filename{i},strcat(zipname{j}(1:end-4),'.nii.gz'))
save_nii(c,savepath)
end
end
#nii2mat
clear all;
path = 'G:\Brats17-master\Brats17ValidationData'
dirfile = dir(path);
filename={dirfile.name};
for i=3:length(filename) #从3开始是因为filename变量里有效文件名从3开始
dirzip=dir(fullfile(path, filename{i}, '*.gz'))
zipname={dirzip.name};
for j=1:length(zipname)
%gunzip(fullfile(path,filename{i},zipname{j}));
nii=load_nii(fullfile(path,filename{i},zipname{j}));
zipname{j}(1:end-3)
a=nii.img;
%a=strcat(zipname{j}(1:end-7),'.mat')
savepath=fullfile(path,filename{i},strcat(zipname{j}(1:end-7),'.mat'))
save(savepath,'a')
end
end
欢迎批斗~~~