逐个从文件夹中读取图像

时间:2012-02-15 20:40:46

标签: matlab

我有一个文件夹,有各种图像我试图使用imread命令从文件夹中逐个读取图像,任何建议如何做到最好 谢谢

5 个答案:

答案 0 :(得分:1)

  • 您可以使用dir函数获取目录中的所有文件。这将返回一个结构向量,其中还包含文件名
  • 遍历所有结构
  • 检查文件是否为图像(请查看扩展名)
  • 阅读图片

答案 1 :(得分:0)

您必须同步图像名称才能循环读取。他们必须像image1.jpgimage2.jpgimage3.jpg ...你有10张这样的图片。

NumberOfimages=10;       %chose the number of images you want to give input
prefix_image='image';    %change the desired input image name here only
fileformat='.jpg';       %change the desired input image format here only

for num=1:NumberOfimages
  image = imread(strcat(prefix_image,num2str(num),fileformat));
end

答案 2 :(得分:0)

即使使用不同的名称,此功能也可以帮助您一次阅读许多图像:

首先将所有图像放在一个文件夹中,例如:D:/ lab /

它们必须采用相同的格式,例如:tif

调用您键入的函数:

A=imread_many(  );

所有图像都在变量A

如果你想要第一个你输入A{1}的图像,如果你想要第二个你输入A{2} ..etc

function [ A ] = imread_many(  )

  srcFiles = dir('D:\lab\*.tif');  % the folder in which ur images exists
 for i = 1 : length(srcFiles)
    filename = strcat('D:\lab\',srcFiles(i).name);
    A{i} = imread(filename);
    figure, imshow(A{i});
 end

end

答案 3 :(得分:0)

srcFiles = dir('C:\Users\Omm\Downloads\multicharacterrec\*.png');  % the folder in which ur images exists
for i = 1 : length(srcFiles)
    filename = strcat('C:\Users\Omm\Downloads\multicharacterrec\',srcFiles(i).name);
    I = imread(filename);
    figure, imshow(I);

答案 4 :(得分:-1)

这可以帮助!

S = struct2cell(dir('*.jpg'));
FileNames = S(1,:);
lenDb = length(FileNames);

result= struct('img', {});

for j = 1 : lenDb


    result(j).img = imread(FileNames{j})
end

所有图片都在struct“result.img”

要访问只调用结果(NUM).img

例如:

图像(结果(1).img)