資源簡(jiǎn)介
醫(yī)學(xué)圖像處理MRI腦仿真庫BrainWeb,mnc格式文件的讀取代碼。
代碼片段和文件信息
function?[imaVOLscaninfo]?=?loadminc(filename)
%function?[imaVOLscaninfo]?=?loadminc(filename)
%
%?Function?to?load?minc?format?input?file.?
%?This?function?use?the?netcdf?MATLAB?utility
%
%?Matlab?library?function?for?MIA_gui?utility.?
%?University?of?Debrecen?PET?Center/LB?2010
if?nargin?==?0
?????[FileName?FilePath]?=?uigetfile(‘*.mnc‘‘Select?minc?file‘);
?????filename?=?[FilePathFileName];
?????if?FileName?==?0;
??????????imaVOL?=?[];scaninfo?=?[];
??????????return;
?????end
end
ncid=netcdf.open(filename‘NC_NOWRITE‘);
scaninfo.filename?=?filename;
%[ndims?nvars?natts?dimm]?=?netcdf.inq(ncid);
%[varname?xtype?dimids?atts]?=?netcdf.inqVar(ncidnetcdf.inqVarID(ncid‘xspace‘));
%?for?i=1:atts
%attname?=?netcdf.inqattname(ncidnetcdf.inqVarID(ncidvarname)i-1)
%attval?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncidvarname)attname)
%end%
pixsizex?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘xspace‘)‘step‘);
pixsizey?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘yspace‘)‘step‘);
pixsizez?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘zspace‘)‘step‘);
x_start?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘xspace‘)‘start‘);
if?isempty(x_start)
????x_start?=?0;
end
y_start?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘yspace‘)‘start‘);
if?isempty(y_start)
????y_start?=?0;
end
z_start?=?netcdf.getAtt(ncidnetcdf.inqVarID(ncid‘zspace‘)‘start‘);
if?isempty(z_start)
????z_start?=?0;
end
scaninfo.pixsize?=?abs([pixsizex?pixsizey?pixsizez]);?%?abs:?Strange?could?happen
scaninfo.space_start?=?([x_start?y_start?z_start]);
varid?=?netcdf.inqVarID(ncid‘image-max‘);
slice_max?=?netcdf.getVar(ncidvarid‘float‘);
scaninfo.mag?=?slice_max;
maxx?=?max(slice_max(:));
if?maxx?==?round(maxx)
???precision?=?‘short‘;
???scaninfo.float?=?0;
else
???precision?=?‘float‘;
???scaninfo.float?=?1;
end
varid?=?netcdf.inqVarID(ncid‘image‘);
volume?=?netcdf.getVar(ncidvaridprecision);
varid?=?netcdf.inqVarID(ncid‘image-min‘);
slice_min?=?netcdf.getVar(ncidvaridprecision);
scaninfo.min?=?slice_min;
scaninfo.num_of_slice??=?size(volume3);
netcdf.close(ncid);
volume?=?double(volume);
imsize?=?size(volume);
%?permute?the?slice?image?dim.?This?is?for?the?permut?command?in?thex?for
%?loop
imaVOL?=?zeros(imsize([213]));
slice_min?=?double(slice_min);
slice_max?=?double(slice_max);
if?length(slice_min)?>1?%?ha?minden?slice-hoz?el?van?t醨olva?a?max-min?閞t閗?
????for?i=1:?size(volume3)
????????currentslice?=?volume(::i);
????????imaVOL(::i)?=?permute(?((currentslice?-?min(currentslice(:)))?/?(?max(currentslice(:))-?min(currentslice(:))?)...
????????????*(slice_max(i)-?slice_min(i)))?-?slice_min(i)[2?1]);
????end
else
????imaVOL?=?permute(?(?(volume?-?min(volume(:)))?/?(?max(volume(:))-?min(volume(:))?)*...
????????((slice_max-?slice_min)))?-?slice_min[2?1?3]);
end
if?strcmp(precision‘short‘)
????imaVOL?=?int32(imaVOL);
end
scaninfo.imfm?=?[size(volume1)?size(volume2)];
sca
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3182??2014-02-12?13:35??loadminc.m
-----------?---------??----------?-----??----
?????????????????3182????????????????????1
評(píng)論
共有 條評(píng)論