【问题标题】:Reading images from file in MATLAB在 MATLAB 中从文件中读取图像
【发布时间】:2015-03-28 17:36:23
【问题描述】:

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

我想像这样阅读这些图片:

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

但是Matlab报错了。我该如何实现?

【问题讨论】:

  • yalcin,别说了。这是一个初学者的问题,应该相应地标记。提出或回答初学者的问题并不丢人。

标签: matlab


【解决方案1】:

你可以使用sprintf函数

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

您可以在 matlab here 中阅读有关字符串处理的更多信息

【讨论】:

  • sprintf 格式字符串中的 \ 应转义为 '\\'。
【解决方案2】:

通过以下方式创建s

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

此外,您的循环将继续覆盖A,因此您必须改为将其设为cell array 以存储所有100 张图像。在循环之外执行此操作:

A = cell(1,100);

然后像这样在循环中加载您的图像:

A{i} = imread(s);

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 很好地抓住了附加错误,但 ypnos 的回答实际上不起作用。 ;)
    • @SilentGhost:你是​​对的。他的回答不会引发错误......它只会进一步破坏文件名,导致同样的错误。 =)
    • 糟糕,我的错!没有想通。我将删除我的答案。
    【解决方案4】:
    imgfiles=dir('c:\images\*.*');
    for k=1:length(imgfiles)
      ...
    end 
    

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

        【解决方案6】:
        >  for i=1:100
        >      s=strcat('C:\images',num2str(i),'.bmp');
        >      try                                                  
        >        A=imread(s);
        >      catch
        >      end 
        >    end
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多