⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runutils.cpp

📁 Ocr source code. provides an Ocr engine that works in C++ language.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
          else if(split_line[0] == "PD_NUM_MATCHES") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "PD_NUM_MATCHES: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }                              parse_dialog_num_matches = value;          }          else if(split_line[0] == "IGNORE_EDGES_TOP") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "IGNORE_EDGES_TOP: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               scan_ignore_edges_top = value;          }          else if(split_line[0] == "IGNORE_EDGES_BOTTOM") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "IGNORE_EDGES_BOTTOM: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               scan_ignore_edges_bottom = value;          }          else if(split_line[0] == "IGNORE_EDGES_LEFT") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "IGNORE_EDGES_LEFT: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               scan_ignore_edges_left = value;          }          else if(split_line[0] == "IGNORE_EDGES_RIGHT") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "IGNORE_EDGES_RIGHT: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               scan_ignore_edges_right = value;          }          else if(split_line[0] == "SPACE_INT_PADDING") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "SPACE_INT_PADDING: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               space_int_padding = value;          }          else if(split_line[0] == "LINEH_INT_PADDING") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "LINEH_INT_PADDING: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               line_height_int_padding = value;          }          // training config:          else if(split_line[0] == "TRCFG_GRID_SIZE_X") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "TRCFG_GRID_SIZE_X: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }                              trcfg_grid_size_x = value;          }          else if(split_line[0] == "TRCFG_GRID_SIZE_Y") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "TRCFG_GRID_SIZE_Y: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_grid_size_y = value;          }          else if(split_line[0] == "TRCFG_GRIDCELL_SIZE_X") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "TRCFG_GRIDCELL_SIZE_X: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_gridcell_size_x = value;          }          else if(split_line[0] == "TRCFG_GRIDCELL_SIZE_Y") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "TRCFG_GRIDCELL_SIZE_Y: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_gridcell_size_y = value;          }          else if(split_line[0] == "TRCFG_INTERSECT_PX") {               int value = atoi(split_line[1].c_str());               if(value < 1) {                    string error_msg = "TRCFG_INTERSECT_PX: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_intersect_px = value;          }          else if(split_line[0] == "TRCFG_SPACE_INT_LOWER") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "TRCFG_SPACE_INT_LOWER: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_space_int.lower = value;          }          else if(split_line[0] == "TRCFG_SPACE_INT_UPPER") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "TRCFG_SPACE_INT_UPPER: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_space_int.upper = value;          }          else if(split_line[0] == "TRCFG_LINE_HEIGHT_INT_LOWER") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "TRCFG_LINE_HEIGHT_INT_LOWER: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_line_height_int.lower = value;          }          else if(split_line[0] == "TRCFG_LINE_HEIGHT_INT_UPPER") {               int value = atoi(split_line[1].c_str());               if(value < 0) {                    string error_msg = "TRCFG_LINE_HEIGHT_INT_UPPER: value out of range";                    log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);                    continue;               }               trcfg_line_height_int.upper = value;          }          else {               string error_msg = string("in parse_from_config at line #") +                                  int_to_string(line_num);               log_error(ERROR_INVALID_CONFIG_OPTION, error_msg.c_str(), NULL);               fclose(fp);               return false;          }     } // while     fclose(fp);     return true;}bool write_config_file(string filename) {     FILE *fp = fopen(filename.c_str(), "w");     if(fp == NULL) {          log_error(ERROR_OPENING_FILE,"in write_config_file",strerror(errno));          return false;     }     // config:     string output_line = string("CFG_PROFILE = ") + cfg_profile + '\n';     fputs(output_line.c_str(), fp);     output_line = string("CFG_PROFILE_DIR = ") + cfg_profile_dir + '\n';     fputs(output_line.c_str(), fp);     output_line = string("CFG_SAVE_DIR = ") + cfg_save_dir + '\n';     fputs(output_line.c_str(), fp);     output_line = string("CFG_SCAN_DIR = ") + cfg_scan_dir + '\n';     fputs(output_line.c_str(), fp);     output_line = string("CFG_LOG_DIR = ") + cfg_log_dir + '\n';     fputs(output_line.c_str(), fp);     output_line = string("CFG_LOG_FILE = ") + cfg_log_file + "\n\n";     fputs(output_line.c_str(), fp);     // misc config:     output_line = string("GRID_RGB_INT_RL = ") +                    int_to_string(grid_rgb_int.Rl) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("GRID_RGB_INT_RU = ") +                    int_to_string(grid_rgb_int.Ru) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("GRID_RGB_INT_GL = ") +                    int_to_string(grid_rgb_int.Gl) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("GRID_RGB_INT_GU = ") +                    int_to_string(grid_rgb_int.Gu) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("GRID_RGB_INT_BL = ") +                    int_to_string(grid_rgb_int.Bl) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("GRID_RGB_INT_BU = ") +                    int_to_string(grid_rgb_int.Bu) + "\n\n";     fputs(output_line.c_str(), fp);     // parse config:     output_line = string("ZI_PR0_PG = ") +                    double_to_string(ZERO_INST_PR0_PGIVEN) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("ZI_PR1_PG = ") +                    double_to_string(ZERO_INST_PR1_PGIVEN) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("ZI_PR0_PGC = ") +                    double_to_string(ZERO_INST_PR0_PGC) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("ZI_PR1_PGC = ") +                    double_to_string(ZERO_INST_PR1_PGC) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("PRSF = ") + double_to_string(PR_SCALING_FACTOR)+'\n';     fputs(output_line.c_str(), fp);     output_line = string("PD_NUM_MATCHES = ") +                   int_to_string(parse_dialog_num_matches) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("IGNORE_EDGES_TOP = ") +                   int_to_string(scan_ignore_edges_top) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("IGNORE_EDGES_BOTTOM = ") +                   int_to_string(scan_ignore_edges_bottom) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("IGNORE_EDGES_LEFT = ") +                   int_to_string(scan_ignore_edges_left) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("IGNORE_EDGES_RIGHT = ") +                   int_to_string(scan_ignore_edges_right) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("SPACE_INT_PADDING = ") +                    int_to_string(space_int_padding) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("LINEH_INT_PADDING = ") +                   int_to_string(line_height_int_padding) + '\n';     fputs(output_line.c_str(), fp);     // training config:     output_line = string("TRCFG_GRID_SIZE_X = ") +                    int_to_string(trcfg_grid_size_x) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_GRID_SIZE_Y = ") +                    int_to_string(trcfg_grid_size_y) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_GRIDCELL_SIZE_X = ") +                    int_to_string(trcfg_gridcell_size_x) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_GRIDCELL_SIZE_Y = ") +                    int_to_string(trcfg_gridcell_size_y) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_INTERSECT_PX = ") +                    int_to_string(trcfg_intersect_px) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_SPACE_INT_LOWER = ") +                    int_to_string(trcfg_space_int.lower) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_SPACE_INT_UPPER = ") +                    int_to_string(trcfg_space_int.upper) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_LINE_HEIGHT_INT_LOWER = ") +                    int_to_string(trcfg_line_height_int.lower) + '\n';     fputs(output_line.c_str(), fp);     output_line = string("TRCFG_LINE_HEIGHT_INT_UPPER = ") +                    int_to_string(trcfg_line_height_int.upper) + '\n';     fputs(output_line.c_str(), fp);     fclose(fp);     return true;}/////// string utils:string trim_whitespace(string input) {     vector<string> whitespace_chars;     whitespace_chars.push_back("\n");     whitespace_chars.push_back(" ");     whitespace_chars.push_back("\t");     for(int i = 0; i < whitespace_chars.size(); i++) {	     string cur_char = whitespace_chars[i];          int cur_pos = 0;          while(cur_pos != -1) {               cur_pos = input.find_first_of(cur_char, 0);               if(cur_pos != -1)                    input = input.replace(cur_pos, 1, "");          }     }     return input;}string strip_newlines(string input) {     vector<string> whitespace_chars;     whitespace_chars.push_back("\n");     //whitespace_chars.push_back("\t");     for(int i = 0; i < whitespace_chars.size(); i++) {	     string cur_char = whitespace_chars[i];          int cur_pos = 0;          while(cur_pos != -1) {               cur_pos = input.find_first_of(cur_char, 0);               if(cur_pos != -1)                    input = input.replace(cur_pos, 1, "");          }     }     return input;}string strip_unused_chars(string input) {     int cur_char;     for(int i = 0; i < input.length(); ) {          cur_char = (int) input[i];          if(((cur_char >= 97) && (cur_char <= 122)) ||             ((cur_char >= 65) && (cur_char <= 90)) || ((char) cur_char == ' '))               i++;          else                input = input.replace(i, 1, "");     }     return input;}vector<string> split_string(string line, char delimeter) {     vector<string> r_val;     int cur_pos = 0;//, next_pos = 0;     string temp_val = "";//, first_pos = "";          while(line.length() != 0) {          cur_pos = line.find_first_of(delimeter, 0);          if(cur_pos == -1) {               r_val.push_back(line);               return r_val;          }          else {               if(cur_pos != 0)                    r_val.push_back(line.substr(0, cur_pos));               else                    r_val.push_back(line.substr(0, 1));                                             if(line.length() == cur_pos + 1)                    return r_val;                              line = line.substr(cur_pos + 1, line.length() - cur_pos - 1);          }     }     return r_val;}string int_to_string(int val) {     char int_val[10];     sprintf(int_val, "%i", val);     return string(int_val);}string double_to_string(double val) {     char double_str[16];     sprintf(double_str, "%05f", val);     return string(double_str);}// error checking:bool directory_exists(string dir_name) {     DIR *dir = opendir(dir_name.c_str());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -