我有一个文件夹(new_images),其中包含 52 个子文件夹(person1 到 person52),每个子文件夹包含 50 个不连续的图像(例如:person1 1、person1 3、person1 10)。我想从每个子文件夹中读取这些图像并进行处理,我该怎么做?
我非常感谢您的回答
我有一个文件夹(new_images),其中包含 52 个子文件夹(person1 到 person52),每个子文件夹包含 50 个不连续的图像(例如:person1 1、person1 3、person1 10)。我想从每个子文件夹中读取这些图像并进行处理,我该怎么做?
我非常感谢您的回答
您可以使用 Matlabimread
函数加载图像。
我正在考虑一种快速的方法来做到这一点:
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 帮助。