读取根目录及其所有子目录下某一格式的所有文件
当需要对保存在很多不同子文件夹下文件做统一处理时, 逐个手动到每个文件夹取逐个处理很麻烦.
此处以对子文件下的 'PNG' 格式图片做滤波操作为实例.
一下代码放在 'Low_Rank' 文件夹的同一层

function Read_subfolders_img
path = 'Low_Rank'; % 根目录;
subfolders = genpath(path); % 生成根目录下所有的子文件夹, subfolders 为所有子文件夹路径组成的一个字符串, 以分号 ';' 间隔开.
folders = strsplit(subfolders, ';'); % 对上述的一个字符串拆分, 得到每个子文件的路径, folders 为 cell 格式
filepaths = cellfun(@(x) (['./', x, '/']), folders, 'UniformOutput', false); % 将每个子文件夹路径变为相对路径
for i = 1:length(filepaths)
imgs = dir([filepaths{i}, '*.png']); % 得到每个子文件夹下 'PNG' 格式图片的属性, 这里主要用到 name 属性
L = length(imgs); % 某一子文件夹下 'PNG' 格式图片的个数
if L > 0
writepath = [filepaths{i}, 'test/']; % 在原始图片路径下新建一个test文件夹用于保存处理后的图片
if ~exist(writepath, 'dir')
mkdir(writepath);
end
for j = 1:L
img = ACWMF(imread([filepaths{i}, imgs(j).name])); % 读取图片, 并滤波
imwrite(img/255, [writepath, imgs(j).name]) % 写入处理后的图片
end
end
end

浙公网安备 33010602011771号