在MATLAB中从文件中读取图像

时间:2009-07-21 10:21:09

标签: matlab

我的计算机上的图像文件夹中有bmp图像。我将其从1.bmp命名为100.bmp

我希望像这样阅读这些图片:

for i=1:100
    s='C:\images'+i+'.bmp';
    A=imread(s);
end

但是Matlab给出了一个错误。我该如何实现呢?

6 个答案:

答案 0 :(得分:9)

您可以使用sprintf功能

s = sprintf('c:\images%d.bmp', i);
A = imread(s);

您可以在matlab here

中阅读有关字符串处理的更多信息

答案 1 :(得分:5)

按以下方式创建s

s = ['C:\images\' int2str(i) '.bmp'];

此外,您的循环只会覆盖A,因此您必须将其设为cell array才能存储所有100张图片。在循环外执行此操作:

A = cell(1,100);

然后将图像加载到循环中,如下所示:

A{i} = imread(s);

答案 2 :(得分:3)

让我猜一下。您没有名为C:\images1.bmp的文件。哦,这不是你得到的错误,但是一旦你关注ypnos's advice,它就会成为下一个错误。

答案 3 :(得分:2)

imgfiles=dir('c:\images\*.*');
for k=1:length(imgfiles)
  ...
end 

答案 4 :(得分:1)

将您的文件夹添加到matlab目录路径并运行以下命令。

files=dir('*.bmp') for k=1:numel(files) I=imread(files(k).name); end

我正在使用这些命令来读取图像文件。

答案 5 :(得分:0)

>  for i=1:100
>      s=strcat('C:\images',num2str(i),'.bmp');
>      try                                                  
>        A=imread(s);
>      catch
>      end 
>    end

这里我使用的是num2str,它用于将数字的数据类型转换为字符串,我正在使用try for aviod错误,因为如果文件不存在那么它将避免该错误。