1

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

我非常感谢您的回答

4

1 回答 1

0

您可以使用 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 帮助。

于 2013-06-28T09:27:14.807 回答