MATLAB: I want to load the dicom files from a folder..

digital image processingimage segmentation

clear % no variables
close all % no figures
clc % empty command window
fileFolder = fullfile(pwd, 'p5');
files = dir(fullfile(fileFolder, '*.dcm'));%specify data file diectory
fileNames = {files.name};
%examine file header meta datafrom dicom stack
info = dicominfo(fullfile(fileFolder, fileNames{1}));
%extract size info from meta data
voxel_size = [info.PixelSpacing; info.SliceThickness];
%read slice image% 3D matrix
hWaitBar= waitbar(0,'Reading DICOM files');
%create array
ct=zeros(sizeI(1), sizeI(2),numImages, classI);
for i=length(fileNames):-1:1
fname = fullfile(fileFolder, fileNames{i});
ct(:,:,i) = dicomread(fname);
waitbar((length(fileNames):-1+1)/length(fileNames))
end
delete(hWaitBar)
montage(reshape((ct), [size(ct,1), size(ct,2), 1, size(ct, 3)]), 'DisplayRange', []);
drawnow;
shg;
im = (ct(:, :, 148));
maxl = double(max(im(:)));
imt = imtool(im, [0, maxl]);
imtool close all;

Best Answer

Your code is assuming that your current directory has a subdirectory named 'p5' that has at least one .dcm file. You should not be assuming that. You should be checking isempty(fileNames)
Related Question