最近在跟老师做一个数据集分类的深度学习框架--大规模行人检测
其中每个图片图片有很多属性(高矮胖瘦,衣着.....)
每种属性对应图片很多,给了我们数据统计。我们用excel统计出图片的编号,然后找出对应的图片,但是图片太多了,就写了个文件操作的程序,输入图片编号,复制对应的图片!这样就做好了图片的预处理
#include<bits/stdc++.h>
#include <Windows.h>
using namespace std;
vector<string>ve,vb;
string initalfile="E:\\2018PRCV\\Attributes\\training_validation_images\\training_validation_images\\RAP_ATTR_TRAIN_";//原始文件前缀
string resultfile="E:\\2018PRCV\\hh\\754\\RAP_ATTR_TRAIN_";//目标文件前缀
int main(){
ios::sync_with_stdio(false);cin.tie(false);
int n;
cin>>n;//图片数
for(int i=1;i<=n;i++){
string ip;
cin>>ip;
for(int i=ip.size();i<=4;i++)ip="0"+ip;
string iip=ip;
iip=iip+".png";
iip=resultfile+iip;
cout<<iip<<endl;
vb.push_back(iip);
ip=initalfile+ip;
ip=ip+".png";
cout<<ip<<endl;
ve.push_back(ip);
}//上面都在做文件名的处理
for(int i=0;i<ve.size();i++){
char buffer[256];//文件复制的主要代码
ifstream in(ve[i].c_str(),ios_base::in|ios_base::binary);
ofstream out(vb[i].c_str(),ios_base::out|ios_base::binary);
if(!in||!out){cerr<<"Open File Failure,Please Try Again!";exit(1);}
while(!in.eof())
{
in.read(buffer,256);
n=in.gcount();
out.write(buffer,n);
}
in.close();
out.close();
}
return 0;
}
然后用Xnconvert对图片预处理,批量处理,加特效,补充数据集!