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