Error using dicomread, file not found
6 次查看(过去 30 天)
显示 更早的评论
Am using dicom images in my project.
Currently trying to read in a series of dicom images into an array using dicomread but I keep getting these error.
Error using dicom_getFileDetails (line 14)
File "00100002.dcm" not found.
Error in dicomread>newDicomread (line 188)
fileDetails = dicom_getFileDetails(filename);
Error in dicomread (line 86)
[X, map, alpha, overlays] = newDicomread(msgname, frames, useVRHeuristic);
Error in Brain_Scannerv1 (line 20)
X(:,:,1,y) = uint16(dicomread(fileNames{y}));
side notes
the files don't have the .dcm extension so I have to add the extension to the filenames.
code below works for a folder containing dicom images but not all of them.
%%create filepath and find list of Dicom
folder_path = uigetdir;
addpath(folder_path)
dirOutput = dir(fullfile(folder_path));
fileNames = {dirOutput.name};
file_num = length(fileNames); %get the number of dicom files.
ext = '.dcm';
for p = 1:file_num
fileNames(p) = strcat(fileNames(p),ext);
end
fileNames(:,[1, 2]) = []; % first 2 filenames don't have have an actual file so i clear the first 2 columns
file_num = length(fileNames);
%%read DICOM files
X = repmat(int16(0), [256 256 1 file_num]); %preallocate array to store files
for y=1:file_num
X(:,:,1,y) = uint16(dicomread(fileNames{y}));
end
Any help is appreciated
0 个评论
采纳的回答
Walter Roberson
2017-10-31
folder_path = uigetdir;
dirOutput = dir(folder_path);
dirOutput([dirOutput.isdir]) = [];
fileNames = fullfile(folder_path, {dirOutput.name});
If a file does not have a .dcm extension, then dicomread() will not be able to read the file if you add the .dcm extension. You should leave out the code
ext = '.dcm';
for p = 1:file_num
fileNames(p) = strcat(fileNames(p),ext);
end
Note: you have
fileNames(:,[1, 2]) = []; % first 2 filenames don't have have an actual file so i clear the first 2 columns
which is not correct code because some files can sort before '.' and '..' . In the code above, the equivalent but more robust code is the one involving isdir
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!