Matlab:读取一个文件夹下多个子文件夹中的多个指定格式的文件

Matlab需要读取一个文件夹下多个子文件夹中的多个指定格式的文件,这里以读取*.JPG格式的文件为例

目录

分步

将程序合并一下


分步

1、首先确定包含多个子文件夹的总文件夹

maindir = 'E:\data\Orl';

2、再确定有哪些子文件夹,并过滤掉干扰的文件

subdir =  dir( maindir );   % 确定子文件夹
for i = 1 : length( subdir )
    if( isequal( subdir( i ).name, '.' ) ||  isequal( subdir( i ).name, '..' ) || ~subdir( i ).isdir )   % 如果不是目录跳过
        continue;
    end

  3、找出子文件中的目标文件

subdirpath = fullfile( maindir, subdir( i ).name, '*.jpg' );
images = dir( subdirpath );   % 在这个子文件夹下找后缀为jpg的文件

    4、对目标文件进行读取

% 对目标文件进行读取
    for j = 1 : length( images )
        imagepath = fullfile( maindir, subdir( i ).name, images( j ).name); % 文件所在路径
        Img = imread(imagepath); % 读取文件
        Img = imresize(Img,[96,160]); % 改变图片大小
        Img = rgb2gray(Img); % 灰度图像
        imshow(Img) % 查看图片
    end
end

将程序合并一下

clear;clc
% 确定包含多个子文件夹的总文件夹
maindir = 'E:\data\Orl';
% 再确定有哪些子文件夹,并过滤掉干扰的文件
subdir =  dir( maindir );   % 确定子文件夹
for i = 1 : length( subdir )
    if( isequal( subdir( i ).name, '.' ) ||  isequal( subdir( i ).name, '..' ) || ~subdir( i ).isdir )   % 如果不是目录跳过
        continue;
    end
    % 找出子文件中的目标文件
    subdirpath = fullfile( maindir, subdir( i ).name, '*.jpg' );
    images = dir( subdirpath );   % 在这个子文件夹下找后缀为jpg的文件
    % 对目标文件进行读取
    for j = 1 : length( images )
        imagepath = fullfile( maindir, subdir( i ).name, images( j ).name); % 文件所在路径
        Img = imread(imagepath); % 读取文件
        Img = imresize(Img,[96,160]); % 改变图片大小
        Img = rgb2gray(Img); % 灰度图像
        imshow(Img) % 查看图片
    end
end

原文:https://www.cnblogs.com/smqh-bokeyuan/p/11406549.html

你可能感兴趣的:(matlab)