【问题标题】:MATLAB Reading several images from folderMATLAB 从文件夹中读取多个图像
【发布时间】:2018-09-26 12:43:57
【问题描述】:

我在一个名为 Images 的文件夹中有一个名为 BasePics 的文件夹。 BasePics 内部有 30 张 JPEG 图像。我想知道以下是否可能:是否可以编写一个脚本来使用 imread() 命令读取所有这些图像。图像的名称有些顺序:C1A_Base.jpg、C1B_Base.jpg、C1C_Base.jpg、C2A_Base.jpg、C2B_Base.jpg、C2C_Base.jpg 等......一直到 C10C_Base.jpg

能否以某种方式使用循环:

    file = dir('Images\BasePics');
    NF = length(file);
    for k = 1:NF
        images(k) = imread(fullfile('ImagesBasePics',file(k))
        imagesc(images(k))
    end

这是我想要做的一个粗略的想法,但我想知道是否可以使用我在图像文件夹中的当前命名格式来完成。我还希望读取的每个图像都是其自己的变量,其名称与当前在文件夹 Images\BasePics 中命名的名称相同或相似,而不是在一个变量 images 下拥有一个包含 30 个图像的串联数组。我想要 30 个单独的变量,名称如 A1, A2,A3,B1,B2,B3 等...

当我只是要求:

    dir images\BasePics

Matlab 输出 33 个文件,而不是 30 个。文件夹开头有两个额外的文件:'.'和'..',最后一个:'Thumbs.db' 当我单独查看文件夹时,这些不存在,有没有办法让Matlab以编程方式跳过这些?

谢谢!!

【问题讨论】:

    标签: matlab file-io


    【解决方案1】:

    由于您事先知道文件的名称,您可以跳过dir 继续阅读文件:

    for l = 'ABC'
        for n=1:10
            nm = sprintf('C%d%c_Base.jpg', n, l );
            fnm = sprintf('%c%d', l, n );
            imgs.(fnm) = imread( fullfile('images','BasePics', nm ) );
        end
    end
    

    现在你有一个 struct imgs 字段 A1...C10 用于每个图像。

    【讨论】:

    • 也许你或@Peter 可以进一步帮助我:我实际上在 Images 文件夹中有几个文件夹,每个文件夹有 30 张图片。理想情况下,我想编写一个函数,输入为子文件夹,即'BasePics',输出为结构imgs.BasePicsimgs.(whatever input is)
    • @user2654568 您可以将字符串 'BasicPics' 替换为包含子文件夹名称的变量 - 这基本上就是创建函数所需的全部内容。自己试试吧!
    【解决方案2】:

    你很亲密。我会使用dir('Images\BasePics\*.jpg') 来删除无关文件。

    您想要的命名系统不适合额外的批处理(您真的要键入所有 A1、A2 等吗?)。我要么保持顺序,并存储要匹配的文件名列表,要么使用结构数组,如 images.C1A 等。

    dirlist = dir('Images\BasePics\*.jpg');
    
    for k = 1:length(dirlist);
        fname = dirlist(k).name;
        [path,name,ext] = fileparts(fname); % separate out base name of file
        images.(name) = imread(fullfile('Images\BasePics', fname));
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      相关资源
      最近更新 更多