Skip to content

Commit 06fc053

Browse files
committed
Fix #184. Training should work now
1 parent 6f6953a commit 06fc053

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

api/tesseractmain.cpp

+15-11
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ void ParseArgs(const int argc, char** argv,
286286
void PreloadRenderers(tesseract::TessBaseAPI* api,
287287
tesseract::PointerVector<tesseract::TessResultRenderer>* renderers,
288288
tesseract::PageSegMode pagesegmode,
289-
const char* outputbase) {
289+
const char* outputbase,
290+
bool in_training_mode) {
290291
if (pagesegmode == tesseract::PSM_OSD_ONLY) {
291292
renderers->push_back(new tesseract::TessOsdRenderer(outputbase));
292293
} else {
@@ -315,15 +316,8 @@ void PreloadRenderers(tesseract::TessBaseAPI* api,
315316
renderers->push_back(new tesseract::TessBoxTextRenderer(outputbase));
316317
}
317318

318-
// disable text renderer when using one of these configs:
319-
// ambigs.train, box.train, box.train.stderr, linebox, rebox
320-
bool disable_text_renderer =
321-
(api->GetBoolVariable("tessedit_ambigs_training", &b) && b) ||
322-
(api->GetBoolVariable("tessedit_resegment_from_boxes", &b) && b) ||
323-
(api->GetBoolVariable("tessedit_make_boxes_from_boxes", &b) && b);
324-
325319
api->GetBoolVariable("tessedit_create_txt", &b);
326-
if (b || (renderers->empty() && !disable_text_renderer)) {
320+
if (b || (renderers->empty() && !in_training_mode)) {
327321
renderers->push_back(new tesseract::TessTextRenderer(outputbase));
328322
}
329323
}
@@ -419,9 +413,19 @@ int main(int argc, char **argv) {
419413
exit(ret_val);
420414
}
421415

416+
// set in_training_mode to true when using one of these configs:
417+
// ambigs.train, box.train, box.train.stderr, linebox, rebox
418+
bool b = false;
419+
bool in_training_mode =
420+
(api.GetBoolVariable("tessedit_ambigs_training", &b) && b) ||
421+
(api.GetBoolVariable("tessedit_resegment_from_boxes", &b) && b) ||
422+
(api.GetBoolVariable("tessedit_make_boxes_from_boxes", &b) && b);
423+
422424
tesseract::PointerVector<tesseract::TessResultRenderer> renderers;
423-
PreloadRenderers(&api, &renderers, pagesegmode, outputbase);
424-
if (!renderers.empty()) {
425+
PreloadRenderers(&api, &renderers, pagesegmode, outputbase,
426+
in_training_mode);
427+
428+
if (!renderers.empty() || in_training_mode) {
425429
bool succeed = api.ProcessPages(image, NULL, 0, renderers[0]);
426430
if (!succeed) {
427431
fprintf(stderr, "Error during processing.\n");

0 commit comments

Comments
 (0)