📄 ge_readvolume.m
字号:
function [imageVol, lastfile] = GE_readVolume(startDir, passnum, volSize, depth, im_offset)
%
%GE_readVolume
%
% [imageVol, lastfile] = GE_readVolume(startDir, passnum, [nX nY nZ], depth, im_offset)
%
% reads the volume for passnum from the series which is stored
% starting in startDir and returns the name of the last file read
%
% Souheil J. Inati
% Dartmouth College
% May 2000
% souheil.inati@dartmouth.edu
%
% initialize some variables
nX = volSize(1);
nY = volSize(2);
nZ = volSize(3);
sliceSize = nX*nY;
imageVol = zeros(nX, nY, nZ);
[path_stem, path_start] = fileparts(startDir);
for i = 1:nZ
% Make the filename
filenum = (passnum-1)*nZ + i; % file no.
filep = ceil(filenum/999) - 1;
filen = filenum - 999*filep;
path_num = str2num(path_start) + 20*filep;
path_now = sprintf('00%d',path_num);
path_now = path_now(length(path_now)-2:length(path_now));
path = fullfile(path_stem, path_now);
stub = sprintf('00%d',filen);
stub = stub(length(stub)-2:length(stub));
imageFile = fullfile(path,['I.' stub]);
% Open the file
[fid,message] = fopen(imageFile,'r','b');
if (fid == -1)
fprintf('Cannot Open %s.\n',imageFile);
passnum
break
end
% Skip to the data
fseek(fid,im_offset,-1);
% Read the slice
buffer = fread(fid,sliceSize,sprintf('int%d',depth));
% append the slice to the imageSet
imageVol(:,:,i) = reshape(buffer, nX, nY);
% Close the file
status = fclose(fid);
% Set the lastfile
lastfile = imageFile;
end
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -