使用matlab对二层目录中的图像数据进行图像名提取并制作caffe分类模型标签。

%% 
clear all; close all; clc;

%%
Dataset = '/home/xn/caffe/examples/facetestquestions/ImageDatainc';
Folder = dir(Dataset);%dir()返回文件夹中的所有文件或者文件夹所组成的列表,结构体名为Floder
Folder(1:2) = [];
NumCls = length(Folder);%length()表示向量长度,即文件个数

%% 
fid = fopen('/home/xn/caffe/examples/facetestquestions/plant_train.txt','w');
fid = fopen('/home/xn/caffe/examples/facetestquestions/plant_train.txt','a');
for iCls = 1:NumCls
    ClsName = Folder(iCls).name;%结构体Floder中第iCLs个文件的名字
    ImgPath = dir(fullfile(Dataset,ClsName,'*.jpg'));
    ImgNum = length(ImgPath);
    trainImgNum = ImgNum - 4;
    %for iImg = 1:trainImgNum
    for iImg = 3:ImgNum
    %for iImg = [1 5 9]
         if iImg == 5
             continue;
         elseif iImg == 9
             continue;
         elseif iImg == 13
             continue;
         elseif iImg == 6
             continue;
         end
        %ImgName_Label = sprintf('/%s/%s %d\n',ClsName,ImgPath(iImg).name,iCls-1);
        ImgName_Label = sprintf('/%s/%s %d\n',ClsName,ImgPath(iImg).name,iCls-1);
        fprintf(fid, ImgName_Label);  
    end
end
fclose(fid);

猜你喜欢

转载自blog.csdn.net/xunan003/article/details/80377473
今日推荐