Matlab 之 mat 轉 nii 以及 nii 轉 mat
阿新 • • 發佈:2018-12-20
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
歡迎批鬥~~~