@@ -286,7 +286,8 @@ void ParseArgs(const int argc, char** argv,
286
286
void PreloadRenderers (tesseract::TessBaseAPI* api,
287
287
tesseract::PointerVector<tesseract::TessResultRenderer>* renderers,
288
288
tesseract::PageSegMode pagesegmode,
289
- const char * outputbase) {
289
+ const char * outputbase,
290
+ bool in_training_mode) {
290
291
if (pagesegmode == tesseract::PSM_OSD_ONLY) {
291
292
renderers->push_back (new tesseract::TessOsdRenderer (outputbase));
292
293
} else {
@@ -315,15 +316,8 @@ void PreloadRenderers(tesseract::TessBaseAPI* api,
315
316
renderers->push_back (new tesseract::TessBoxTextRenderer (outputbase));
316
317
}
317
318
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
-
325
319
api->GetBoolVariable (" tessedit_create_txt" , &b);
326
- if (b || (renderers->empty () && !disable_text_renderer )) {
320
+ if (b || (renderers->empty () && !in_training_mode )) {
327
321
renderers->push_back (new tesseract::TessTextRenderer (outputbase));
328
322
}
329
323
}
@@ -419,9 +413,19 @@ int main(int argc, char **argv) {
419
413
exit (ret_val);
420
414
}
421
415
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
+
422
424
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) {
425
429
bool succeed = api.ProcessPages (image, NULL , 0 , renderers[0 ]);
426
430
if (!succeed) {
427
431
fprintf (stderr, " Error during processing.\n " );
0 commit comments