如何在Matlab中读取和显示文件夹中的多个图像?

时间:2018-04-05 20:49:52

标签: matlab for-loop image-processing imshow imread

我有一个包含6个图像的文件夹,我想在matlab中显示每个图像。 图像保存为image01,image02 .... image06。

代码的输出仅多次显示第一个图像。 我错过了什么?

a = dir('Example\*.png');
b = 'C:\Example\';


for i=1:length(a) %where a is the path to the image folder
   fileName = strcat(b,a(i).name);
   disp(fileName);% this allows me to see the names in text.
   Image = imread('C:\Example/Image01.png');
   figure, imshow(Image);
end

这个循环工作,并使用disp(文件名)告诉我每个图像的名称1,因此它不是语法错误。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这很有效!

a = dir('Example\*.png');
b = 'C:\Example\';


for i=1:length(a) %where a is the path to the image folder
   fileName = strcat(b,a(i).name);
   Name = a(i).name;
   disp(fileName);% this allows me to see the names in text.
   Image = imread(Name);
   figure, imshow(Image);
end

答案 1 :(得分:1)

实际上,dir函数应该返回所需的所有内容,以便正确定位文件(并重建它们各自的路径),而不声明辅助变量来保存目标路径:

files = dir('C:\...\MyFolder\*.png');

for i = 1:numel(files)
   file = files(i);
   filename = fullfile(file.folder,file.name);

   disp(filename);

   img = imread(filename);
   figure();
   imshow(img);
end