matlab读取文件夹中多个子文件夹下的图片并重命名保存在新的文件夹中
时间: 2023-12-17 17:04:38 浏览: 28
可以使用以下步骤实现:
1. 使用 `dir` 函数获取文件夹中所有子文件夹的路径,存储在一个结构体数组中。
2. 对于每个子文件夹,使用 `dir` 函数获取其中所有图片文件的路径,存储在另一个结构体数组中。
3. 遍历所有图片文件,读取图片并重命名,然后保存到新的文件夹中。
下面是示例代码:
```matlab
% 原文件夹路径和新文件夹路径
src_folder = 'path/to/source/folder';
dst_folder = 'path/to/destination/folder';
% 获取所有子文件夹路径
sub_folders = dir(src_folder);
sub_folders = sub_folders(3:end); % 去除 '.' 和 '..' 两个目录
% 遍历每个子文件夹
for i = 1:length(sub_folders)
sub_folder_path = fullfile(src_folder, sub_folders(i).name);
% 获取子文件夹中所有图片文件路径
img_files = dir(fullfile(sub_folder_path, '*.jpg')); % 修改为你需要的图片格式
% 遍历每个图片文件,读取图片并重命名保存到新文件夹
for j = 1:length(img_files)
img_path = fullfile(sub_folder_path, img_files(j).name);
img = imread(img_path);
[~, name, ext] = fileparts(img_files(j).name);
new_name = sprintf('%s_%d%s', sub_folders(i).name, j, ext);
imwrite(img, fullfile(dst_folder, new_name));
end
end
```
以上代码假设原文件夹中包含多个子文件夹,每个子文件夹包含多个 JPG 格式的图片文件。代码遍历每个子文件夹,然后遍历其中的图片文件,读取图片并重命名保存到新的文件夹中。新的文件名以子文件夹名和图片在子文件夹中的顺序编号组成,例如 `subfolder1_1.jpg`。