如何在matlab中导入包含图像的多个文件夹?

时间:2015-12-09 07:39:31

标签: image matlab

我想只选择文件夹而不是单独选择每个图像。 例如,我有8个文件夹,每个文件夹包含72个dicom图像。我的目的是只选择8个文件夹并将每个文件夹图像保存在一行数组中。我编写了这段代码,但它只读取了一个文件夹中的多个图像。请帮我解决我的问题。

function cell=readfromfile()
[filename, pathname] = uigetfile('*.*', 'Pick folder','Multiselect','on');
img_dir =pathname;
filename(1);
    N =length(filename);
strfile =filename{1};
img = dicomread(fullfile(img_dir, strfile));
siz_img = size(img);
% create result matrix:
% load all the remaining images and put them in the matrix
for ii=2:N
    strfile =filename{ii};
    I{ii}=dicomread( fullfile(pathname, filename{ii}) );
end

1 个答案:

答案 0 :(得分:0)

uigetfile或uigetdir都不允许你选择多个文件夹,所以我可能只是使用uigetdir来获取所选文件夹的路径。如果你知道你有8个文件夹,你可以在循环中调用它8次(确保不要覆盖你的数据)。如果你不知道你有多少个文件夹,你可能需要狡猾的东西,但我还没有真正考虑过它。

然后我会使用dir来获取文件夹中的文件列表。如果您有任何子文件夹或其他您不想在文件夹中阅读的文件,则可能需要使用dir('*.png');之类的内容。

你从那里看图像看起来很好。