c++文件复制

最近在跟老师做一个数据集分类的深度学习框架--大规模行人检测

其中每个图片图片有很多属性(高矮胖瘦,衣着.....)

每种属性对应图片很多,给了我们数据统计。我们用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对图片预处理,批量处理,加特效,补充数据集!

猜你喜欢

转载自blog.csdn.net/zxk_hi/article/details/81807400