生成标签的工具

生成训练所需标签的工具

creat_labels.m

clc;  
clear;  
%%下面生成顺序的trainval.txt和labels文件  
%先设置train占数据集的百分比,余下部分为val  
maindir='E:\FaceAligned\Aligned\';  
wf = fopen('trainval.txt','w');  
lbf=fopen('labels.txt','w');  
train_percent=0.9;%val_percent=1-train_percent  
  
subdir = dir(maindir);  
k = 1;
ii=-1;  
numoffile=0;  
for i = 1:length(subdir)%第一层目录  
  if ~strcmp(subdir(i).name ,'.') && ~strcmp(subdir(i).name,'..')  
     ii=ii+1;  
     label = subdir(i).name;  
     fprintf(lbf,'%s\n',label);  
     label=strcat(label,'/');  
     subsubdir = dir(strcat(maindir,label));  
    for j=1:length(subsubdir)  
         if ~strcmp(subsubdir(j).name ,'.') && ~strcmp(subsubdir(j).name,'..')  
           fprintf(wf,'%s%s%s %d\n','Aligned/',label,subsubdir(j).name,ii);  
           numoffile=numoffile+1;  

%      im = strcat(maindir,label,subsubdir(j).name);  
%            
%            img = imread(im);
%             img = imresize(img,[64,64]);
%             
%             if length(size(img)) == 2
%                 gray = img;
%             else
%                 gray = rgb2gray(img);
%             end
%            
%             gray = double(gray) / 255;
%             
%             file = [];
%             file = ['test\',num2str(k),'.bmp'];
%             imwrite(gray,file);
%             
           fprintf('处理标签为%d的第%d张图片\n',ii,j-2);  
           k=k+1;
         end  

    end  
     
  end  
end  
fclose(wf);  
fclose(lbf);  
  
%%  
%下面将trainval的顺序打乱  
file=cell(1,numoffile);  
fin=fopen('trainval.txt','r');  
i=1;  
while ~feof(fin)  
    tline=fgetl(fin);  
    file{i}=tline;  
    i=i+1;  
end  
fclose(fin);  
  
fprintf('\ntrainval.txt共%d行,开始打乱顺序....\n',numoffile);  
pause(1);  
rep=randperm(numoffile);  
fout=fopen('trainval.txt','w');  
for i=1:numoffile  
    fprintf(fout,'%s\n',file{rep(i)});  
end  
fprintf('生成的trainval.txt已打乱顺序.\n');  
fclose(fout);  
  
%%  
%下面根据打乱顺序的trainval.txt生成train.txt和val.txt  
fprintf('开始生成train.txt和val.txt...\n');  
pause(1);  
train_file=fopen('train.txt','w');  
text_file=fopen('val.txt','w');  
trainvalfile=fopen('trainval.txt','r');  
  
num_train=sort(randperm(numoffile,floor(numoffile*train_percent)));  
num_test=setdiff(1:numoffile,num_train);  
i=1;  
while ~feof(trainvalfile)  
    tline=fgetl(trainvalfile);  
    if ismember(i,num_train)  
        fprintf(train_file,'%s\n',tline);  
    else  
        fprintf(text_file,'%s\n',tline);  
    end  
    i=i+1;  
end  
fclose(train_file);  
fclose(text_file);  
fclose(trainvalfile);  
fprintf('共有图片%d张!\n',numoffile);  
fprintf('Done!\n');  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值