从多个文件夹中读取多个非连续图像

时间:2013-06-28 07:47:11

标签: matlab

我有一个文件夹(new_images),其中包含52个子文件夹(person1到person52),每个子文件夹包含50个不连续的图像(如:person1 1,person1 3,person1 10)。我想从每个子文件夹中读取这些图像并进行处理,我该怎么做?

我真的很感激你的回答

1 个答案:

答案 0 :(得分:0)

您可以使用Matlab imread函数加载图像。

我正在考虑一种快速的方法:

new_images_rep = pwd;
for i=1:52
    eval(srcat('pics = dir(new_images_rep','/person',num2str(i),')');
    for k=1:50
        a(i,k) = imread(pics(k+2).name,'fmt'); %there is k+2 because the dir function also stores repositories like '.' or '..'.
    end
end

您必须小心dir功能。您应该在new_images存储库中对其进行测试,以查看pics中存储的文件/存储库的内容。

eval是一个Matlab函数,允许您执行任何Matlab表达式。由strcat创建的字符串位于此处(如果i=3):

'pics = dir(new_images_rep/person3)'

确保new_images存储库位于您的Matlab路径中,或者将new_images_rep = pwd;替换为new_images_rep = 'the_actual_full_path'

'fmt'是您要存储的图片的实际格式(例如.tif.jpg或其他任何内容)。

使用我给你的代码(以及一些修改),第一个子文件夹中的所有文件都将存储在a(1,:)中。不要犹豫,阅读Matlab帮助,了解这里使用的所有功能。