如何批量重命名几个文件夹中的图像?

时间:2015-12-17 20:42:53

标签: image matlab

我有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_01_images_12_images_0,{ {1}}等)。如何将此更改更改为2_images_1

1 个答案:

答案 0 :(得分:2)

您可以先拆分文件夹名称以获得1到12的数字

str = strsplit('dataset_12', '_');     % split along '_'

文件夹编号将位于str{2}

然后用

连接这条信息
new_name = [str{2} '_' original_image_name]

其中original_image_name是原始图片名称(!) - 或者像您已经使用的那样使用sprintf