matlab 根据一个目录下多个文件夹中的多个注释名字找个对应图片拷贝到另一个文件夹中

时间:2021-03-23 21:36:21
clc;
clear;


maindir = '/media/zc/A/Imagenet2012/bbox_train_v2'; %标签路径
maindir2 = '/media/zc/A/Imagenet2012/img_train';  %图片路径
a = dir(maindir);   % a 里面包括多个文件夹
b = a(4:end);    %  a 中三个隐藏的文件夹不要
n = size(b);     % n 就是多个文件夹


for m = 1:n;
    str1 = strcat(maindir,'/',b(m).name,'/','*.xml');    %  第一个文件夹下的所有xml 文件
    dirs = dir(str1);
    for num = 1: length(dirs)
        name = dirs(num).name;      %  第一个文件夹下的第一个文件名
        name2  = name(1:end-4);
        
        str2 = strcat(maindir2,'/',b(m).name,'/',name2,'.JPEG');     %  找到这个图片的位置
        %I = imread(str2);
        %imwrite(I,'/media/zc/A/JPEGImages','JPEG')
        outpath = '/media/zc/A/JPEGImages/';    % 输出位置
        out = [outpath,name2,'.JPEG'];          
        disp(out);
        copyfile(str2,out);
    end
end