⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 load_cor.m

📁 mri_toolbox是一个工具用来MRI. 来自于SourceForge, 我上传这个软件,希望能结识对医疗软件感兴趣的兄弟.
💻 M
字号:
function [cor,M] = fmri_ldcor(subject,arg2,arg3)
%
% Loads the indicated corronal slices from 
%   $SUBJECTS_DIR/subject/mri/volumeid
%
% cor = fmri_ldcor(subject)                
% cor = fmri_ldcor(subject,volumeid)
% cor = fmri_ldcor(subject,slices)
% cor = fmri_ldcor(subject,volid,slices)
%
% If unspecified, volumeid defaults to T1.
% If unspecified, nslices defaults to [1:256].
%
% $Id: load_cor.m,v 1.2 2004/02/07 01:41:51 psdlw Exp $

if(nargin < 1 | nargin > 3)
  msg = 'USAGE: cor = fmri_ldcor(subject,<volid>,<slices>)';
  qoe(msg);error(msg);
end

volumeid = 'T1';
slices   = [1:256];

if(nargin == 2)
  if(ischar(arg2)) volumeid = arg2;
  else             slices   = arg2;
  end
end

if(nargin == 3)
  if(ischar(arg2)) volumeid = arg2;
  else             slices   = arg2;
  end
  if(ischar(arg3)) volumeid = arg3;
  else             slices   = arg3;
  end
end

if(min(slices) < 1)
  msg = sprintf('Min Slice No = %d, must be > 0',min(slices));
  qoe(msg);error(msg);
end

if(max(slices) > 256)
  msg = sprintf('Max Slice No = %d, must be <= 256',max(slices));
  qoe(msg);error(msg);
end


subject = deblank(subject);
volumeid = deblank(volumeid);

SubjectsDir = deblank(getenv('SUBJECTS_DIR'));
if(isempty(SubjectsDir))
  msg = 'Cannot find SUBJECTS_DIR environment variable';
  qoe(msg);error(msg);
end

SubjDir = strcat(SubjectsDir,'/',subject);
CorDir  = strcat(SubjDir,'/mri/',volumeid);

d = dir(CorDir);
if(isempty(d))
  CorDir = deblank(subject);
  d = dir(CorDir);
  if(isempty(d))
    msg = sprintf('Directory %s does not exist (DIR=%s, SD=%s)', ...
				CorDir,volumeid, SubjectsDir);
    qoe(msg);error(msg);
  end
end

nslices = length(slices);
cor = zeros(256,nslices,256);

Endian = 0;
precision = 'uint8';
Nv = 256*256;

fprintf(1,'Loading coronals from subject %s, volume %s, %d slices ... \n',...
        subject,volumeid,nslices);

for s = 1:nslices,

  n = slices(s);

  corfile = sprintf('%s/COR-%03d',CorDir,n);
  d = dir(corfile);
  if(isempty(d))
    msg = sprintf('File %s does not exist',corfile);
    qoe(msg);error(msg);
  end
  
  %%%% Open the corfile %%%%%
  if(Endian == 0) fid=fopen(corfile,'r','b'); % Big-Endian
  else            fid=fopen(corfile,'r','l'); % Little-Endian
  end
  if(fid == -1)
    msg = sprintf('Could not open %s for reading.',corfile); 
    qoe(msg); error(msg);
  end

  %%% Read the file in corfile %%%
  z = fread(fid,Nv,precision);
  cor(:,:,s) = reshape(z, [256 256])'; %' transpose for row major
  fclose(fid); 

end

%cor = permute(cor, [3 2 1]);

M = [0,-1,0,129;0,0,1,-129;-1,0,0,129;0,0,0,1];

return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -