如何在 MATLAB 的 for 循环中读取多个图像?

How to read mutliple images in a for loop in MATLAB?

我在一个文件夹中分割了结果。这些需要在 for 循环中读取并在循环中进一步处理。我尝试阅读如下:

for i=1:10 
file_name=dir(strcat('C:\Users\adminp\Desktop\dinosaurs\')); 
  im=imread(strcat('C:\Users\adminp\Desktop\dinosaurs\',file_name(i).name));
  %processing of read image
end

抛出错误:???在 370 使用 ==> imread 时出错 无法打开文件 "C:\Users\adminp\Desktop\dinosaurs\." 进行阅读; 您可能没有阅读权限。

请指出我哪里做错了。

我猜你的问题是:

file_name(1).name = .     % Stands for current directory
file_name(2).name = ..    % Stands for parent directory
file_name(3).name = your_file_name.jpg

现在,做:

images = dir('*JPG')
for i=1:numel(images) 
file_name=dir(strcat('C:\Users\adminp\Desktop\dinosaurs\')); 
  im=imread(strcat('C:\Users\adminp\Desktop\dinosaurs\',images(i).name));
  %processing of read image
end    

如果您有 R2014b 版本的 MATLAB 和计算机视觉系统工具箱,您可以使用 imageSet 对象在一行中完成此操作。

images = imageSet('C:\Users\adminp\Desktop\dinosaurs\');

将创建一个对象,其中包含 dinosaurs 目录中所有图像的路径。它将自动排除任何非图像文件。

然后你可以按如下方式处理你的图片

for i = 1:images.Count
  im = read(images, i);
  % process the image
end