如何用Matlab阅读很多DICOM文件?

时间:2012-06-13 20:44:50

标签: matlab image-processing dicom

我使用的脚本在循环中生成字符串集合:

'folder1/im1' 
'folder1/im2'
... 
'folder1/im3'

我将字符串赋值给变量,当我尝试执行img = dicomread(file);函数时,我收到以下错误:

Error using dicomread>newDicomread (line 164)
The first input argument must be a filename or DICOM info struct.

Error in dicomread (line 80)
[X, map, alpha, overlays] = newDicomread(msgname, frames);

Error in time (line 14)
    img = dicomread(file);

但是,使用命令行我不会收到错误:img = dicomread('folder1/im1')

代码是下一个:

    for i=1:6 %six cases
            nameDir = strcat('folder', int2str(i));
            dirData = dir(nameDir);
            dirIndex = [dirData.isdir];
            fileList = {dirData(~dirIndex).name}; % list of files for each directory
            n = size(fileList);
            cd(nameDir);
            for x = 1:n(2)
                    img = dicomread(strcat(pwd(), '/', fileList(x)));
            end
            cd('..');
    end

可能是什么错误?

1 个答案:

答案 0 :(得分:1)

你现在已经知道了,不是吗。

根据您所写的内容,进行测试

img = dicomread('folder1/im1');

当你遇到麻烦时

img = dicomread(file);

您需要实际测试遇到问题的线路。我建议:

  

在test.m中设置一个断点img = dicomread(file)。当你到达那一行时,你可以看到file等于什么。同时执行whos file以确保它是类char,而不是单元格数组或随机内容。

如果您仍需要帮助,请修改原始帖子并显示将这些字符串分配到file的代码,并告诉我们在命令提示符下键入img = dicomread(file)时会发生什么。