我有一个文件夹(new_images),其中包含52个子文件夹(person1到person52),每个子文件夹包含50个不连续的图像(如:person1 1,person1 3,person1 10)。我想从每个子文件夹中读取这些图像并进行处理,我该怎么做?
我真的很感激你的回答
答案 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帮助,了解这里使用的所有功能。