我有600张图片(例如images_0, images_1, images_2, ..., images_599
),这些图片保存在12个文件夹中(例如dataset_1, dataset_2, dataset_3, ..., dataset_12
)。
我目前正在使用此代码重命名图片:
mainDirectory = 'C:\Users\Desktop\data';
subDirectory = dir([mainDirectory '/dataset_*']);
for m = 1 : length(subDirectory)
subFolder = dir(fullfile(mainDirectory, subDirectory(m).name, '*.png'));
fileNames = {subFolder.name};
for iFile = 1 : numel( subFolder )
newName = fullfile(mainDirectory, subDirectory(m).name, sprintf('%00d.png', iFile));
movefile(fullfile(mainDirectory, subDirectory(m).name, fileNames{iFile}), newName);
end
end
此代码效果很好但我想将newName
的格式更改为以下内容:number-of-dataset_name-of-image
(例如1_images_0
,1_images_1
,2_images_0
,{ {1}}等)。如何将此更改更改为2_images_1
?
答案 0 :(得分:2)
您可以先拆分文件夹名称以获得1到12的数字
str = strsplit('dataset_12', '_'); % split along '_'
文件夹编号将位于str{2}
。
然后用
连接这条信息new_name = [str{2} '_' original_image_name]
其中original_image_name
是原始图片名称(!) - 或者像您已经使用的那样使用sprintf
。