如何在MATLAB中从两种不同类型的目录中加载所有文件

ton*_*ony 2 matlab image image-processing

我知道可以使用以下方法加载所有类型.gif的文件:

files = dir('C:\myfolder\*.gif');
Run Code Online (Sandbox Code Playgroud)

然而,我的问题是,我想要加载类型的所有文件.gif.jpg.这样做的好方法是什么?

ray*_*ica 6

你可以简单地搜索 .gif.jpg文件,然后加载和处理图像一个接一个.

只需调用dir两次 - 每种类型的图像一个,并将结果存储在两个单独的结构中.接下来,将所有文件名连接到一个结构,然后继续处理所有图像.

像这样的东西:

%// Specify the folder where your images are stored
folder = fullfile('path', 'to', 'your', 'folder');

%// Specify search pattern for JPEG and GIF files
jpgFileFolder = fullfile(folder, '*.jpg');
gifFileFolder = fullfile(folder, '*.gif');

%// Invoke dir for both types of images
d1 = dir(jpgFileFolder);
d2 = dir(gifFileFolder);

%// Concatenate both dir structures together into a single structure
d = [d1; d2];

%// For each image we have...
for idx = 1 : numel(d)
    %// Get full path to file
    f = fullfile(folder, d(idx).name);

    %// Read in the image
    im = imread(f);

    %// Do something with this image
    %//...
    %//...
end
Run Code Online (Sandbox Code Playgroud)

fullfile允许您创建独立于操作系统的目录字符串.只需将每个子字符串作为字符串的一部分并将它们作为单独的字符串参数放入其中fullfile,它应该可以正常工作.