38 return &global_params;
59 if (line[0] !=
'\r' && line[0] !=
'\n' && line[0] !=
'#') {
61 for (valptr = line; *valptr && *valptr !=
' ' && *valptr !=
'\t'; valptr++) {
68 }
while (*valptr ==
' ' || *valptr ==
'\t');
70 foundit =
SetParam(line, valptr, constraint, member_params);
74 tprintf(
"Warning: Parameter not found: %s\n", line);
86 if (sp !=
nullptr && sp->constraint_ok(constraint)) {
90 return (sp !=
nullptr);
95 if (ip && ip->constraint_ok(constraint)) {
97 std::stringstream stream(
value);
98 stream.imbue(std::locale::classic());
100 if (intval != INT_MIN) {
101 ip->set_value(intval);
107 if (bp !=
nullptr && bp->constraint_ok(constraint)) {
111 bp->set_value(
false);
118 if (dp !=
nullptr && dp->constraint_ok(constraint)) {
119 double doubleval = NAN;
120 std::stringstream stream(
value);
121 stream.imbue(std::locale::classic());
123 if (!std::isnan(doubleval)) {
124 dp->set_value(doubleval);
127 return (sp || ip || bp || dp);
131 std::string *
value) {
136 *
value = sp->c_str();
142 *
value = std::to_string(int32_t(*ip));
148 *
value = bool(*bp) ?
"1" :
"0";
155 std::ostringstream stream;
156 stream.imbue(std::locale::classic());
157 stream << double(*dp);
158 *
value = stream.str();
165 int num_iterations = (member_params ==
nullptr) ? 1 : 2;
166 std::ostringstream stream;
167 stream.imbue(std::locale::classic());
168 for (
int v = 0; v < num_iterations; ++v) {
171 stream << int_param->name_str() <<
'\t' << (int32_t)(*int_param) <<
'\t'
172 << int_param->info_str() <<
'\n';
175 stream << bool_param->name_str() <<
'\t' << bool(*bool_param) <<
'\t'
176 << bool_param->info_str() <<
'\n';
179 stream << string_param->name_str() <<
'\t' << string_param->c_str() <<
'\t'
180 << string_param->info_str() <<
'\n';
183 stream << double_param->name_str() <<
'\t' << (double)(*double_param) <<
'\t'
184 << double_param->info_str() <<
'\n';
187 fprintf(fp,
"%s", stream.str().c_str());
192 int num_iterations = (member_params ==
nullptr) ? 1 : 2;
193 for (
int v = 0; v < num_iterations; ++v) {
196 param->ResetToDefault();
199 param->ResetToDefault();
202 param->ResetToDefault();
205 param->ResetToDefault();
void tprintf(const char *format,...)
void chomp_string(char *str)
tesseract::ParamsVectors * GlobalParams()
std::vector< BoolParam * > bool_params
std::vector< StringParam * > string_params
std::vector< IntParam * > int_params
std::vector< DoubleParam * > double_params
static bool ReadParamsFromFp(SetParamConstraint constraint, TFile *fp, ParamsVectors *member_params)
static bool ReadParamsFile(const char *file, SetParamConstraint constraint, ParamsVectors *member_params)
static bool GetParamAsString(const char *name, const ParamsVectors *member_params, std::string *value)
static void ResetToDefaults(ParamsVectors *member_params)
static void PrintParams(FILE *fp, const ParamsVectors *member_params)
static bool SetParam(const char *name, const char *value, SetParamConstraint constraint, ParamsVectors *member_params)
char * FGets(char *buffer, int buffer_size)
bool Open(const char *filename, FileReader reader)