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

时间:2015-01-16 07:00:30

标签: matlab image-processing matlab-cvst

我在文件夹中分段了结果。那些需要在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 无法打开文件“C:\ Users \ adminp \ Desktop \ dinosaurs \。”阅读; 你可能没有阅读权限。

请建议我出错的地方。

2 个答案:

答案 0 :(得分:4)

我想你的问题是:

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    

答案 1 :(得分:1)

如果您使用计算机视觉系统工具箱获得了R1614b MATLAB版本,则可以使用imageSet对象在一行中执行此操作。

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

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

然后您可以按如下方式处理图像

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