zoukankan      html  css  js  c++  java
  • 巧用ifstream判断文件是否存在

      最近在写手写数字的识别软件,训练样例数量巨大而且数字个数不唯一,有可能在中途粘出一部分做测试样例。因此写下面的脚本来获取文件名,之后丢到训练函数里。

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <iomanip>
     4 #include <cstring>
     5 #include <climits>
     6 #include <complex>
     7 #include <fstream>
     8 #include <cassert>
     9 #include <cstdio>
    10 #include <bitset>
    11 #include <vector>
    12 #include <deque>
    13 #include <queue>
    14 #include <stack>
    15 #include <ctime>
    16 #include <set>
    17 #include <map>
    18 #include <cmath>
    19 
    20 #include <opencv.hpp>
    21 #include <opencv2/opencv.hpp>
    22 #include <opencv2/ml/ml.hpp>
    23 #include <opencv2/core/core.hpp>
    24 #include <opencv_modules.hpp>
    25 #include <opencv2/highgui/highgui.hpp>
    26 #include <opencv2/imgproc/imgproc.hpp>
    27 
    28 #define cvQueryHistValue_1D( hist, idx0 ) 
    29     ((float)cvGetReal1D( (hist)->bins, (idx0)))
    30 
    31 
    32 using namespace std;
    33 using namespace cv;
    34 
    35 const string rootDir("./sample/");
    36 const string jpg(".jpg");
    37 const string dirNames[11] = {
    38     rootDir + "0/", rootDir + "1/", rootDir + "2/", 
    39     rootDir + "3/", rootDir + "4/", rootDir + "5/", 
    40     rootDir + "6/", rootDir + "7/", rootDir + "8/", 
    41     rootDir + "9/"
    42 };
    43 
    44 inline void i2s(string& str, int i, int len = 5) {
    45     stringstream ss;
    46     ss << setw(len) << setfill('0') << i;
    47     str = ss.str();
    48 }
    49 
    50 void train(string fileName) {
    51 
    52 }
    53 
    54 void getFile(string dirName, int num) {
    55     static int sum = 0;
    56     string tmp;
    57     string fileName;
    58     string snum;
    59     stringstream ss;
    60     int cur = 1;
    61 
    62     tmp.clear();
    63     ss << num; ss >> snum;
    64     ifstream fileRead;
    65     for (; ; cur++) {
    66         i2s(tmp, cur);
    67         fileName = dirNames[num] + snum + "_" + tmp + jpg;
    68         if (cur == 1) cout << "start file name : " << fileName << endl;
    69         fileRead.open(fileName);
    70         if (!fileRead) {
    71             cout << "end file name : " << fileName << endl;
    72             break;
    73         }
    74         fileRead.close();
    75         train(fileName);
    76     }
    77     sum += cur - 1;
    78     cout << "current number of samples : " << sum << endl << endl;
    79 }
    80 
    81 
    82 int main() {
    83     int i = 0;
    84     for (int i = 0; i != 10; i++) {
    85         getFile(dirNames[i], i);
    86     }
    87     return 0;
    88 }

  • 相关阅读:
    4-6 随机数
    linux下安装jdk
    markdown使用教程
    IDE新建gradle各种坑
    day05泛型类和泛型方法
    day05集合
    day15 Ui自动化中三种等待方式
    day15 Ui自动化元素的定位
    Windows系统
    解决sublime text 3使用Install Package时出现There are no packages available for installation问题
  • 原文地址:https://www.cnblogs.com/kirai/p/5321298.html
Copyright © 2011-2022 走看看