How to read images from folders in matlab

前端 未结 3 610
迷失自我
迷失自我 2021-01-27 04:19

I have six folders like this >> Images and each folder contains some images. I know how to read images in matlab BUT my question is how I can traverse through these folders and

相关标签:
3条回答
  • 2021-01-27 05:02

    So basically you want to read images in different folders without putting all of the images into one folder and using imread()? Because you could just copy all of the images (and name them in a way that lets you know which folder they came from) into a your MATLAB working directory and then load them that way.

    Use the cd command to change directories (like in *nix) and then load/read the images as you traverse through each folder. You might need absolute path names.

    0 讨论(0)
  • 2021-01-27 05:07

    if you know the path to the image containing directory, you can use dir on it to list all the files (and directories) in it. Filter the files with the image extension you want and voila, you have an array with all the images in the directory you specified:

    dirname = 'images';
    ext = '.jpg';
    
    sDir=  dir( fullfile(dirname ,['*' ext]) );;
    sDir([sDir.isdir])=[]; % remove directories
    

    % following is obsolete because wildcarded dir ^^
    b=arrayfun(@(x) strcmpi(x.name(end-length(ext)+1:end),ext),sDir); % filter on extension
    sFiles = sDir(b);

    You probably want to prefix the name of each file with the directory before using:

    sFileName(ii) = fullfile(dirname, sFiles(ii));
    

    You can process this resulting files as you want. Loading all the files for example:

    for ii=1:numel(sFiles)
        data{i}=imread(sFiles(ii).name)
    end
    

    If you also want to recurse the subdirectories, I suggest you take a look at:

    How to get all files under a specific directory in MATLAB?

    or other solutions on the FEX:

    http://www.mathworks.com/matlabcentral/fileexchange/8682-dirr-find-files-recursively-filtering-name-date-or-bytes

    http://www.mathworks.com/matlabcentral/fileexchange/15505-recursive-dir

    EDIT: added Amro's suggestion of wildcarding the dir call

    0 讨论(0)
  • 2021-01-27 05:13

    The easiest way is certainly a right clic on the forlder in matlab and "Add to Path" >> "Selected Folders and Subfolders"

    Then you can just get images with imread without specifying the path.

    0 讨论(0)
提交回复
热议问题