批量获取文件名使用程序加标签

机器学习进行标签数据提取过程中,手工一个个加注标签较为麻烦,此时可以采用程序处理这种复杂重复的事情。

1:首先使用一个bat脚本获取文件名,脚本编辑:DIR *.* /B >list.txt

最终按行获取图像的名称,例如:

02512068.jpg
0S6152046-0 0.jpg
101TYC4_0.png
1266964-z.jpg
130b3c1b23ed94470d507af824d1e420.png
1329670819_7xKrKj.jpg
1352687617249.jpg
138398529.jpg
180202l6xtnngfjj8sxg0t.jpg
1837_20120925135308.jpg
20122182271426826.jpg

.........

2 在名称后加空格并加标签0

#include<opencv2\opencv.hpp>
#include<iostream>
#include<string>
#include<vector>
#include<fstream>
#include<opencv2/ml/ml.hpp>
using namespace std;
using namespace cv;
using namespace ml;
int main() 
{    
//https://blog.csdn.net/qing101hua/article/details/78564201    
ifstream f1("new.txt");  
  string s;   
 vector<string>v;   
 while (getline(f1, s)) {    
    //char num[15] = { 0 };     
   //strncpy(num, s+(strlen(s) - 2), 1);    
    string ss;   
     ss = s + " 0";    
    v.push_back(ss);   
 }   
 for (vector<string>::iterator it = v.begin(); it != v.end(); it++) {   
     cout << *it << endl;  
  }   
 vector<int>vv(v.size(), 0);  
  cout << vv.size();  
  Mat m1 = Mat::zeros(vv.size() - 1, 1, CV_8UC1);  
  for (int i = 0; i < m1.rows; i++) {    
    for (int j = 0; j < m1.cols; j++) {       
     m1.at<uchar>(i, j) = vv[i];  

      }   
 }   
 imshow("aa", m1);  
  //imshow("aa", image[0]);//显示第一张图片   
 waitKey();
 getchar(); 
 return 0;
}

3.最终运行结果如下:

猜你喜欢

转载自blog.csdn.net/qq_35054151/article/details/81810798