tesseract  5.0.0
capi.cpp
Go to the documentation of this file.
1 // File: capi.cpp
3 // Description: C-API TessBaseAPI
4 //
5 // (C) Copyright 2012, Google Inc.
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
17 
18 #include <tesseract/capi.h>
19 
20 #include <cstring> // for strdup
21 
22 const char *TessVersion() {
23  return TessBaseAPI::Version();
24 }
25 
26 void TessDeleteText(const char *text) {
27  delete[] text;
28 }
29 
30 void TessDeleteTextArray(char **arr) {
31  for (char **pos = arr; *pos != nullptr; ++pos) {
32  delete[] * pos;
33  }
34  delete[] arr;
35 }
36 
37 void TessDeleteIntArray(const int *arr) {
38  delete[] arr;
39 }
40 
41 TessResultRenderer *TessTextRendererCreate(const char *outputbase) {
42  return new tesseract::TessTextRenderer(outputbase);
43 }
44 
45 TessResultRenderer *TessHOcrRendererCreate(const char *outputbase) {
46  return new tesseract::TessHOcrRenderer(outputbase);
47 }
48 
49 TessResultRenderer *TessHOcrRendererCreate2(const char *outputbase, BOOL font_info) {
50  return new tesseract::TessHOcrRenderer(outputbase, font_info != 0);
51 }
52 
53 TessResultRenderer *TessAltoRendererCreate(const char *outputbase) {
54  return new tesseract::TessAltoRenderer(outputbase);
55 }
56 
57 TessResultRenderer *TessTsvRendererCreate(const char *outputbase) {
58  return new tesseract::TessTsvRenderer(outputbase);
59 }
60 
61 TessResultRenderer *TessPDFRendererCreate(const char *outputbase, const char *datadir,
62  BOOL textonly) {
63  return new tesseract::TessPDFRenderer(outputbase, datadir, textonly != 0);
64 }
65 
66 TessResultRenderer *TessUnlvRendererCreate(const char *outputbase) {
67  return new tesseract::TessUnlvRenderer(outputbase);
68 }
69 
71  return new tesseract::TessBoxTextRenderer(outputbase);
72 }
73 
75  return new tesseract::TessWordStrBoxRenderer(outputbase);
76 }
77 
79  return new tesseract::TessLSTMBoxRenderer(outputbase);
80 }
81 
83  delete renderer;
84 }
85 
87  renderer->insert(next);
88 }
89 
91  return renderer->next();
92 }
93 
95  return static_cast<int>(renderer->BeginDocument(title));
96 }
97 
99  return static_cast<int>(renderer->AddImage(api));
100 }
101 
103  return static_cast<int>(renderer->EndDocument());
104 }
105 
107  return renderer->file_extension();
108 }
109 
111  return renderer->title();
112 }
113 
115  return renderer->imagenum();
116 }
117 
119  return new TessBaseAPI;
120 }
121 
123  delete handle;
124 }
125 
126 size_t TessBaseAPIGetOpenCLDevice(TessBaseAPI * /*handle*/, void **device) {
127  return TessBaseAPI::getOpenCLDevice(device);
128 }
129 
130 void TessBaseAPISetInputName(TessBaseAPI *handle, const char *name) {
131  handle->SetInputName(name);
132 }
133 
134 const char *TessBaseAPIGetInputName(TessBaseAPI *handle) {
135  return handle->GetInputName();
136 }
137 
138 void TessBaseAPISetInputImage(TessBaseAPI *handle, Pix *pix) {
139  handle->SetInputImage(pix);
140 }
141 
143  return handle->GetInputImage();
144 }
145 
147  return handle->GetSourceYResolution();
148 }
149 
150 const char *TessBaseAPIGetDatapath(TessBaseAPI *handle) {
151  return handle->GetDatapath();
152 }
153 
154 void TessBaseAPISetOutputName(TessBaseAPI *handle, const char *name) {
155  handle->SetOutputName(name);
156 }
157 
158 BOOL TessBaseAPISetVariable(TessBaseAPI *handle, const char *name, const char *value) {
159  return static_cast<int>(handle->SetVariable(name, value));
160 }
161 
162 BOOL TessBaseAPISetDebugVariable(TessBaseAPI *handle, const char *name, const char *value) {
163  return static_cast<int>(handle->SetDebugVariable(name, value));
164 }
165 
166 BOOL TessBaseAPIGetIntVariable(const TessBaseAPI *handle, const char *name, int *value) {
167  return static_cast<int>(handle->GetIntVariable(name, value));
168 }
169 
170 BOOL TessBaseAPIGetBoolVariable(const TessBaseAPI *handle, const char *name, BOOL *value) {
171  bool boolValue;
172  bool result = handle->GetBoolVariable(name, &boolValue);
173  if (result) {
174  *value = static_cast<int>(boolValue);
175  }
176  return static_cast<int>(result);
177 }
178 
179 BOOL TessBaseAPIGetDoubleVariable(const TessBaseAPI *handle, const char *name, double *value) {
180  return static_cast<int>(handle->GetDoubleVariable(name, value));
181 }
182 
183 const char *TessBaseAPIGetStringVariable(const TessBaseAPI *handle, const char *name) {
184  return handle->GetStringVariable(name);
185 }
186 
187 void TessBaseAPIPrintVariables(const TessBaseAPI *handle, FILE *fp) {
188  handle->PrintVariables(fp);
189 }
190 
191 BOOL TessBaseAPIPrintVariablesToFile(const TessBaseAPI *handle, const char *filename) {
192  FILE *fp = fopen(filename, "w");
193  if (fp != nullptr) {
194  handle->PrintVariables(fp);
195  fclose(fp);
196  return TRUE;
197  }
198  return FALSE;
199 }
200 
201 int TessBaseAPIInit4(TessBaseAPI *handle, const char *datapath, const char *language,
202  TessOcrEngineMode mode, char **configs, int configs_size, char **vars_vec,
203  char **vars_values, size_t vars_vec_size, BOOL set_only_non_debug_params) {
204  std::vector<std::string> varNames;
205  std::vector<std::string> varValues;
206  if (vars_vec != nullptr && vars_values != nullptr) {
207  for (size_t i = 0; i < vars_vec_size; i++) {
208  varNames.emplace_back(vars_vec[i]);
209  varValues.emplace_back(vars_values[i]);
210  }
211  }
212 
213  return handle->Init(datapath, language, mode, configs, configs_size, &varNames, &varValues,
214  set_only_non_debug_params != 0);
215 }
216 
217 int TessBaseAPIInit1(TessBaseAPI *handle, const char *datapath, const char *language,
218  TessOcrEngineMode oem, char **configs, int configs_size) {
219  return handle->Init(datapath, language, oem, configs, configs_size, nullptr, nullptr, false);
220 }
221 
222 int TessBaseAPIInit2(TessBaseAPI *handle, const char *datapath, const char *language,
223  TessOcrEngineMode oem) {
224  return handle->Init(datapath, language, oem);
225 }
226 
227 int TessBaseAPIInit3(TessBaseAPI *handle, const char *datapath, const char *language) {
228  return handle->Init(datapath, language);
229 }
230 
232  return handle->GetInitLanguagesAsString();
233 }
234 
236  std::vector<std::string> languages;
237  handle->GetLoadedLanguagesAsVector(&languages);
238  char **arr = new char *[languages.size() + 1];
239  for (auto &language : languages) {
240  arr[&language - &languages[0]] = strdup(language.c_str());
241  }
242  arr[languages.size()] = nullptr;
243  return arr;
244 }
245 
247  std::vector<std::string> languages;
248  handle->GetAvailableLanguagesAsVector(&languages);
249  char **arr = new char *[languages.size() + 1];
250  for (auto &language : languages) {
251  arr[&language - &languages[0]] = strdup(language.c_str());
252  }
253  arr[languages.size()] = nullptr;
254  return arr;
255 }
256 
258  handle->InitForAnalysePage();
259 }
260 
261 void TessBaseAPIReadConfigFile(TessBaseAPI *handle, const char *filename) {
262  handle->ReadConfigFile(filename);
263 }
264 
265 void TessBaseAPIReadDebugConfigFile(TessBaseAPI *handle, const char *filename) {
266  handle->ReadDebugConfigFile(filename);
267 }
268 
270  handle->SetPageSegMode(mode);
271 }
272 
274  return handle->GetPageSegMode();
275 }
276 
277 char *TessBaseAPIRect(TessBaseAPI *handle, const unsigned char *imagedata, int bytes_per_pixel,
278  int bytes_per_line, int left, int top, int width, int height) {
279  return handle->TesseractRect(imagedata, bytes_per_pixel, bytes_per_line, left, top, width,
280  height);
281 }
282 
283 #ifndef DISABLED_LEGACY_ENGINE
285  handle->ClearAdaptiveClassifier();
286 }
287 #endif
288 
289 void TessBaseAPISetImage(TessBaseAPI *handle, const unsigned char *imagedata, int width, int height,
290  int bytes_per_pixel, int bytes_per_line) {
291  handle->SetImage(imagedata, width, height, bytes_per_pixel, bytes_per_line);
292 }
293 
294 void TessBaseAPISetImage2(TessBaseAPI *handle, struct Pix *pix) {
295  return handle->SetImage(pix);
296 }
297 
299  handle->SetSourceResolution(ppi);
300 }
301 
302 void TessBaseAPISetRectangle(TessBaseAPI *handle, int left, int top, int width, int height) {
303  handle->SetRectangle(left, top, width, height);
304 }
305 
307  return handle->GetThresholdedImage();
308 }
309 
311  TessBaseAPI::ClearPersistentCache();
312 }
313 
314 #ifndef DISABLED_LEGACY_ENGINE
315 
316 BOOL TessBaseAPIDetectOrientationScript(TessBaseAPI *handle, int *orient_deg, float *orient_conf,
317  const char **script_name, float *script_conf) {
318  auto success = handle->DetectOrientationScript(orient_deg, orient_conf, script_name, script_conf);
319  return static_cast<BOOL>(success);
320 }
321 
322 #endif
323 
324 struct Boxa *TessBaseAPIGetRegions(TessBaseAPI *handle, struct Pixa **pixa) {
325  return handle->GetRegions(pixa);
326 }
327 
328 struct Boxa *TessBaseAPIGetTextlines(TessBaseAPI *handle, struct Pixa **pixa, int **blockids) {
329  return handle->GetTextlines(pixa, blockids);
330 }
331 
332 struct Boxa *TessBaseAPIGetTextlines1(TessBaseAPI *handle, const BOOL raw_image,
333  const int raw_padding, struct Pixa **pixa, int **blockids,
334  int **paraids) {
335  return handle->GetTextlines(raw_image != 0, raw_padding, pixa, blockids, paraids);
336 }
337 
338 struct Boxa *TessBaseAPIGetStrips(TessBaseAPI *handle, struct Pixa **pixa, int **blockids) {
339  return handle->GetStrips(pixa, blockids);
340 }
341 
342 struct Boxa *TessBaseAPIGetWords(TessBaseAPI *handle, struct Pixa **pixa) {
343  return handle->GetWords(pixa);
344 }
345 
346 struct Boxa *TessBaseAPIGetConnectedComponents(TessBaseAPI *handle, struct Pixa **cc) {
347  return handle->GetConnectedComponents(cc);
348 }
349 
351  BOOL text_only, struct Pixa **pixa, int **blockids) {
352  return handle->GetComponentImages(level, static_cast<bool>(text_only), pixa, blockids);
353 }
354 
356  const BOOL text_only, const BOOL raw_image,
357  const int raw_padding, struct Pixa **pixa,
358  int **blockids, int **paraids) {
359  return handle->GetComponentImages(level, static_cast<bool>(text_only), raw_image != 0,
360  raw_padding, pixa, blockids, paraids);
361 }
362 
364  return handle->GetThresholdedImageScaleFactor();
365 }
366 
368  return handle->AnalyseLayout();
369 }
370 
372  return handle->Recognize(monitor);
373 }
374 
375 BOOL TessBaseAPIProcessPages(TessBaseAPI *handle, const char *filename, const char *retry_config,
376  int timeout_millisec, TessResultRenderer *renderer) {
377  return static_cast<int>(handle->ProcessPages(filename, retry_config, timeout_millisec, renderer));
378 }
379 
380 BOOL TessBaseAPIProcessPage(TessBaseAPI *handle, struct Pix *pix, int page_index,
381  const char *filename, const char *retry_config, int timeout_millisec,
382  TessResultRenderer *renderer) {
383  return static_cast<int>(
384  handle->ProcessPage(pix, page_index, filename, retry_config, timeout_millisec, renderer));
385 }
386 
388  return handle->GetIterator();
389 }
390 
392  return handle->GetMutableIterator();
393 }
394 
396  return handle->GetUTF8Text();
397 }
398 
399 char *TessBaseAPIGetHOCRText(TessBaseAPI *handle, int page_number) {
400  return handle->GetHOCRText(nullptr, page_number);
401 }
402 
403 char *TessBaseAPIGetAltoText(TessBaseAPI *handle, int page_number) {
404  return handle->GetAltoText(page_number);
405 }
406 
407 char *TessBaseAPIGetTsvText(TessBaseAPI *handle, int page_number) {
408  return handle->GetTSVText(page_number);
409 }
410 
411 char *TessBaseAPIGetBoxText(TessBaseAPI *handle, int page_number) {
412  return handle->GetBoxText(page_number);
413 }
414 
415 char *TessBaseAPIGetWordStrBoxText(TessBaseAPI *handle, int page_number) {
416  return handle->GetWordStrBoxText(page_number);
417 }
418 
419 char *TessBaseAPIGetLSTMBoxText(TessBaseAPI *handle, int page_number) {
420  return handle->GetLSTMBoxText(page_number);
421 }
422 
424  return handle->GetUNLVText();
425 }
426 
428  return handle->MeanTextConf();
429 }
430 
432  return handle->AllWordConfidences();
433 }
434 
435 #ifndef DISABLED_LEGACY_ENGINE
436 BOOL TessBaseAPIAdaptToWordStr(TessBaseAPI *handle, TessPageSegMode mode, const char *wordstr) {
437  return static_cast<int>(handle->AdaptToWordStr(mode, wordstr));
438 }
439 #endif
440 
442  handle->Clear();
443 }
444 
446  handle->End();
447 }
448 
449 int TessBaseAPIIsValidWord(TessBaseAPI *handle, const char *word) {
450  return handle->IsValidWord(word);
451 }
452 
453 BOOL TessBaseAPIGetTextDirection(TessBaseAPI *handle, int *out_offset, float *out_slope) {
454  return static_cast<int>(handle->GetTextDirection(out_offset, out_slope));
455 }
456 
457 const char *TessBaseAPIGetUnichar(TessBaseAPI *handle, int unichar_id) {
458  return handle->GetUnichar(unichar_id);
459 }
460 
461 void TessBaseAPISetMinOrientationMargin(TessBaseAPI *handle, double margin) {
462  handle->set_min_orientation_margin(margin);
463 }
464 
465 int TessBaseAPINumDawgs(const TessBaseAPI *handle) {
466  return handle->NumDawgs();
467 }
468 
470  return handle->oem();
471 }
472 
473 void TessBaseGetBlockTextOrientations(TessBaseAPI *handle, int **block_orientation,
474  bool **vertical_writing) {
475  handle->GetBlockTextOrientations(block_orientation, vertical_writing);
476 }
477 
479  delete handle;
480 }
481 
483  return new TessPageIterator(*handle);
484 }
485 
487  handle->Begin();
488 }
489 
491  return static_cast<int>(handle->Next(level));
492 }
493 
495  return static_cast<int>(handle->IsAtBeginningOf(level));
496 }
497 
499  TessPageIteratorLevel element) {
500  return static_cast<int>(handle->IsAtFinalElement(level, element));
501 }
502 
504  int *left, int *top, int *right, int *bottom) {
505  return static_cast<int>(handle->BoundingBox(level, left, top, right, bottom));
506 }
507 
509  return handle->BlockType();
510 }
511 
513  TessPageIteratorLevel level) {
514  return handle->GetBinaryImage(level);
515 }
516 
518  int padding, struct Pix *original_image, int *left, int *top) {
519  return handle->GetImage(level, padding, original_image, left, top);
520 }
521 
523  int *y1, int *x2, int *y2) {
524  return static_cast<int>(handle->Baseline(level, x1, y1, x2, y2));
525 }
526 
528  TessWritingDirection *writing_direction,
529  TessTextlineOrder *textline_order, float *deskew_angle) {
530  handle->Orientation(orientation, writing_direction, textline_order, deskew_angle);
531 }
532 
534  TessParagraphJustification *justification, BOOL *is_list_item,
535  BOOL *is_crown, int *first_line_indent) {
536  bool bool_is_list_item;
537  bool bool_is_crown;
538  handle->ParagraphInfo(justification, &bool_is_list_item, &bool_is_crown, first_line_indent);
539  if (is_list_item != nullptr) {
540  *is_list_item = static_cast<int>(bool_is_list_item);
541  }
542  if (is_crown != nullptr) {
543  *is_crown = static_cast<int>(bool_is_crown);
544  }
545 }
546 
548  delete handle;
549 }
550 
552  return new TessResultIterator(*handle);
553 }
554 
556  return handle;
557 }
558 
560  return handle;
561 }
562 
564  return new TessChoiceIterator(*handle);
565 }
566 
568  return static_cast<int>(handle->Next(level));
569 }
570 
572  return handle->GetUTF8Text(level);
573 }
574 
576  return handle->Confidence(level);
577 }
578 
580  return handle->WordRecognitionLanguage();
581 }
582 
584  BOOL *is_italic, BOOL *is_underlined,
585  BOOL *is_monospace, BOOL *is_serif,
586  BOOL *is_smallcaps, int *pointsize, int *font_id) {
587  bool bool_is_bold;
588  bool bool_is_italic;
589  bool bool_is_underlined;
590  bool bool_is_monospace;
591  bool bool_is_serif;
592  bool bool_is_smallcaps;
593  const char *ret = handle->WordFontAttributes(&bool_is_bold, &bool_is_italic, &bool_is_underlined,
594  &bool_is_monospace, &bool_is_serif,
595  &bool_is_smallcaps, pointsize, font_id);
596  if (is_bold != nullptr) {
597  *is_bold = static_cast<int>(bool_is_bold);
598  }
599  if (is_italic != nullptr) {
600  *is_italic = static_cast<int>(bool_is_italic);
601  }
602  if (is_underlined != nullptr) {
603  *is_underlined = static_cast<int>(bool_is_underlined);
604  }
605  if (is_monospace != nullptr) {
606  *is_monospace = static_cast<int>(bool_is_monospace);
607  }
608  if (is_serif != nullptr) {
609  *is_serif = static_cast<int>(bool_is_serif);
610  }
611  if (is_smallcaps != nullptr) {
612  *is_smallcaps = static_cast<int>(bool_is_smallcaps);
613  }
614  return ret;
615 }
616 
618  return static_cast<int>(handle->WordIsFromDictionary());
619 }
620 
622  return static_cast<int>(handle->WordIsNumeric());
623 }
624 
626  return static_cast<int>(handle->SymbolIsSuperscript());
627 }
628 
630  return static_cast<int>(handle->SymbolIsSubscript());
631 }
632 
634  return static_cast<int>(handle->SymbolIsDropcap());
635 }
636 
638  delete handle;
639 }
640 
642  return static_cast<int>(handle->Next());
643 }
644 
646  return handle->GetUTF8Text();
647 }
648 
650  return handle->Confidence();
651 }
652 
654  return new ETEXT_DESC();
655 }
656 
658  delete monitor;
659 }
660 
662  monitor->cancel = cancelFunc;
663 }
664 
665 void TessMonitorSetCancelThis(ETEXT_DESC *monitor, void *cancelThis) {
666  monitor->cancel_this = cancelThis;
667 }
668 
670  return monitor->cancel_this;
671 }
672 
674  monitor->progress_callback2 = progressFunc;
675 }
676 
678  return monitor->progress;
679 }
680 
681 void TessMonitorSetDeadlineMSecs(ETEXT_DESC *monitor, int deadline) {
682  monitor->set_deadline_msecs(deadline);
683 }
TessPolyBlockType
Definition: capi.h:97
TessParagraphJustification
Definition: capi.h:121
struct TessMutableIterator TessMutableIterator
Definition: capi.h:65
bool(* TessProgressFunc)(ETEXT_DESC *ths, int left, int right, int top, int bottom)
Definition: capi.h:141
struct TessBaseAPI TessBaseAPI
Definition: capi.h:62
TessPageSegMode
Definition: capi.h:73
struct TessResultRenderer TessResultRenderer
Definition: capi.h:61
struct TessChoiceIterator TessChoiceIterator
Definition: capi.h:66
struct TessPageIterator TessPageIterator
Definition: capi.h:63
bool(* TessCancelFunc)(void *cancel_this, int words)
Definition: capi.h:140
struct TessResultIterator TessResultIterator
Definition: capi.h:64
#define TRUE
Definition: capi.h:40
#define FALSE
Definition: capi.h:41
struct ETEXT_DESC ETEXT_DESC
Definition: capi.h:137
TessTextlineOrder
Definition: capi.h:132
TessOcrEngineMode
Definition: capi.h:67
#define BOOL
Definition: capi.h:39
TessOrientation
Definition: capi.h:115
TessPageIteratorLevel
Definition: capi.h:90
TessWritingDirection
Definition: capi.h:127
BOOL TessBaseAPIDetectOrientationScript(TessBaseAPI *handle, int *orient_deg, float *orient_conf, const char **script_name, float *script_conf)
Definition: capi.cpp:316
TessResultRenderer * TessAltoRendererCreate(const char *outputbase)
Definition: capi.cpp:53
BOOL TessBaseAPIPrintVariablesToFile(const TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:191
int TessBaseAPIMeanTextConf(TessBaseAPI *handle)
Definition: capi.cpp:427
BOOL TessBaseAPIGetDoubleVariable(const TessBaseAPI *handle, const char *name, double *value)
Definition: capi.cpp:179
BOOL TessResultIteratorSymbolIsSuperscript(const TessResultIterator *handle)
Definition: capi.cpp:625
struct Boxa * TessBaseAPIGetComponentImages1(TessBaseAPI *handle, const TessPageIteratorLevel level, const BOOL text_only, const BOOL raw_image, const int raw_padding, struct Pixa **pixa, int **blockids, int **paraids)
Definition: capi.cpp:355
const char * TessBaseAPIGetDatapath(TessBaseAPI *handle)
Definition: capi.cpp:150
BOOL TessResultIteratorWordIsFromDictionary(const TessResultIterator *handle)
Definition: capi.cpp:617
void TessBaseAPIClear(TessBaseAPI *handle)
Definition: capi.cpp:441
char * TessBaseAPIGetWordStrBoxText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:415
BOOL TessResultIteratorSymbolIsDropcap(const TessResultIterator *handle)
Definition: capi.cpp:633
TessResultRenderer * TessWordStrBoxRendererCreate(const char *outputbase)
Definition: capi.cpp:74
void TessDeleteIntArray(const int *arr)
Definition: capi.cpp:37
const char * TessBaseAPIGetUnichar(TessBaseAPI *handle, int unichar_id)
Definition: capi.cpp:457
void TessBaseAPISetImage(TessBaseAPI *handle, const unsigned char *imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line)
Definition: capi.cpp:289
TessBaseAPI * TessBaseAPICreate()
Definition: capi.cpp:118
BOOL TessBaseAPIGetBoolVariable(const TessBaseAPI *handle, const char *name, BOOL *value)
Definition: capi.cpp:170
int TessBaseAPIInit1(TessBaseAPI *handle, const char *datapath, const char *language, TessOcrEngineMode oem, char **configs, int configs_size)
Definition: capi.cpp:217
void TessMonitorDelete(ETEXT_DESC *monitor)
Definition: capi.cpp:657
void TessPageIteratorOrientation(TessPageIterator *handle, TessOrientation *orientation, TessWritingDirection *writing_direction, TessTextlineOrder *textline_order, float *deskew_angle)
Definition: capi.cpp:527
TessResultRenderer * TessUnlvRendererCreate(const char *outputbase)
Definition: capi.cpp:66
const char * TessResultIteratorWordRecognitionLanguage(const TessResultIterator *handle)
Definition: capi.cpp:579
void TessChoiceIteratorDelete(TessChoiceIterator *handle)
Definition: capi.cpp:637
char * TessBaseAPIGetAltoText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:403
int * TessBaseAPIAllWordConfidences(TessBaseAPI *handle)
Definition: capi.cpp:431
int TessResultRendererImageNum(TessResultRenderer *renderer)
Definition: capi.cpp:114
char * TessBaseAPIRect(TessBaseAPI *handle, const unsigned char *imagedata, int bytes_per_pixel, int bytes_per_line, int left, int top, int width, int height)
Definition: capi.cpp:277
BOOL TessPageIteratorNext(TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:490
TessPageSegMode TessBaseAPIGetPageSegMode(const TessBaseAPI *handle)
Definition: capi.cpp:273
const char * TessResultRendererTitle(TessResultRenderer *renderer)
Definition: capi.cpp:110
char * TessBaseAPIGetTsvText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:407
void TessBaseAPIPrintVariables(const TessBaseAPI *handle, FILE *fp)
Definition: capi.cpp:187
void TessBaseAPIInitForAnalysePage(TessBaseAPI *handle)
Definition: capi.cpp:257
char * TessBaseAPIGetHOCRText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:399
void TessBaseAPISetImage2(TessBaseAPI *handle, struct Pix *pix)
Definition: capi.cpp:294
BOOL TessBaseAPIGetTextDirection(TessBaseAPI *handle, int *out_offset, float *out_slope)
Definition: capi.cpp:453
void TessResultIteratorDelete(TessResultIterator *handle)
Definition: capi.cpp:547
TessResultRenderer * TessTextRendererCreate(const char *outputbase)
Definition: capi.cpp:41
void TessPageIteratorDelete(TessPageIterator *handle)
Definition: capi.cpp:478
const TessPageIterator * TessResultIteratorGetPageIteratorConst(const TessResultIterator *handle)
Definition: capi.cpp:559
struct Boxa * TessBaseAPIGetStrips(TessBaseAPI *handle, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:338
BOOL TessResultRendererEndDocument(TessResultRenderer *renderer)
Definition: capi.cpp:102
const char * TessBaseAPIGetInputName(TessBaseAPI *handle)
Definition: capi.cpp:134
struct Pix * TessPageIteratorGetImage(const TessPageIterator *handle, TessPageIteratorLevel level, int padding, struct Pix *original_image, int *left, int *top)
Definition: capi.cpp:517
char * TessBaseAPIGetLSTMBoxText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:419
int TessBaseAPIGetThresholdedImageScaleFactor(const TessBaseAPI *handle)
Definition: capi.cpp:363
BOOL TessBaseAPIProcessPages(TessBaseAPI *handle, const char *filename, const char *retry_config, int timeout_millisec, TessResultRenderer *renderer)
Definition: capi.cpp:375
const char * TessBaseAPIGetStringVariable(const TessBaseAPI *handle, const char *name)
Definition: capi.cpp:183
TessResultRenderer * TessTsvRendererCreate(const char *outputbase)
Definition: capi.cpp:57
void TessBaseAPISetMinOrientationMargin(TessBaseAPI *handle, double margin)
Definition: capi.cpp:461
const char * TessChoiceIteratorGetUTF8Text(const TessChoiceIterator *handle)
Definition: capi.cpp:645
void TessBaseAPISetSourceResolution(TessBaseAPI *handle, int ppi)
Definition: capi.cpp:298
void TessBaseAPIReadConfigFile(TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:261
TessResultRenderer * TessResultRendererNext(TessResultRenderer *renderer)
Definition: capi.cpp:90
int TessBaseAPINumDawgs(const TessBaseAPI *handle)
Definition: capi.cpp:465
int TessBaseAPIIsValidWord(TessBaseAPI *handle, const char *word)
Definition: capi.cpp:449
void TessBaseAPISetRectangle(TessBaseAPI *handle, int left, int top, int width, int height)
Definition: capi.cpp:302
int TessBaseAPIInit3(TessBaseAPI *handle, const char *datapath, const char *language)
Definition: capi.cpp:227
float TessChoiceIteratorConfidence(const TessChoiceIterator *handle)
Definition: capi.cpp:649
void TessBaseAPIClearPersistentCache(TessBaseAPI *)
Definition: capi.cpp:310
BOOL TessPageIteratorBaseline(const TessPageIterator *handle, TessPageIteratorLevel level, int *x1, int *y1, int *x2, int *y2)
Definition: capi.cpp:522
BOOL TessPageIteratorBoundingBox(const TessPageIterator *handle, TessPageIteratorLevel level, int *left, int *top, int *right, int *bottom)
Definition: capi.cpp:503
void TessMonitorSetCancelFunc(ETEXT_DESC *monitor, TessCancelFunc cancelFunc)
Definition: capi.cpp:661
BOOL TessResultIteratorWordIsNumeric(const TessResultIterator *handle)
Definition: capi.cpp:621
const char * TessVersion()
Definition: capi.cpp:22
const char * TessBaseAPIGetInitLanguagesAsString(const TessBaseAPI *handle)
Definition: capi.cpp:231
const char * TessResultIteratorWordFontAttributes(const TessResultIterator *handle, BOOL *is_bold, BOOL *is_italic, BOOL *is_underlined, BOOL *is_monospace, BOOL *is_serif, BOOL *is_smallcaps, int *pointsize, int *font_id)
Definition: capi.cpp:583
struct Boxa * TessBaseAPIGetRegions(TessBaseAPI *handle, struct Pixa **pixa)
Definition: capi.cpp:324
void TessBaseAPIDelete(TessBaseAPI *handle)
Definition: capi.cpp:122
BOOL TessBaseAPIAdaptToWordStr(TessBaseAPI *handle, TessPageSegMode mode, const char *wordstr)
Definition: capi.cpp:436
TessResultRenderer * TessPDFRendererCreate(const char *outputbase, const char *datadir, BOOL textonly)
Definition: capi.cpp:61
char * TessBaseAPIGetBoxText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:411
void TessPageIteratorParagraphInfo(TessPageIterator *handle, TessParagraphJustification *justification, BOOL *is_list_item, BOOL *is_crown, int *first_line_indent)
Definition: capi.cpp:533
BOOL TessResultRendererAddImage(TessResultRenderer *renderer, TessBaseAPI *api)
Definition: capi.cpp:98
struct Pix * TessPageIteratorGetBinaryImage(const TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:512
void TessMonitorSetProgressFunc(ETEXT_DESC *monitor, TessProgressFunc progressFunc)
Definition: capi.cpp:673
void TessBaseAPISetOutputName(TessBaseAPI *handle, const char *name)
Definition: capi.cpp:154
void TessBaseAPIReadDebugConfigFile(TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:265
BOOL TessBaseAPIGetIntVariable(const TessBaseAPI *handle, const char *name, int *value)
Definition: capi.cpp:166
void TessBaseAPISetInputName(TessBaseAPI *handle, const char *name)
Definition: capi.cpp:130
int TessBaseAPIInit2(TessBaseAPI *handle, const char *datapath, const char *language, TessOcrEngineMode oem)
Definition: capi.cpp:222
int TessBaseAPIInit4(TessBaseAPI *handle, const char *datapath, const char *language, TessOcrEngineMode mode, char **configs, int configs_size, char **vars_vec, char **vars_values, size_t vars_vec_size, BOOL set_only_non_debug_params)
Definition: capi.cpp:201
int TessMonitorGetProgress(ETEXT_DESC *monitor)
Definition: capi.cpp:677
void TessMonitorSetCancelThis(ETEXT_DESC *monitor, void *cancelThis)
Definition: capi.cpp:665
TessMutableIterator * TessBaseAPIGetMutableIterator(TessBaseAPI *handle)
Definition: capi.cpp:391
BOOL TessResultIteratorNext(TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:567
struct Boxa * TessBaseAPIGetTextlines(TessBaseAPI *handle, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:328
char * TessBaseAPIGetUTF8Text(TessBaseAPI *handle)
Definition: capi.cpp:395
struct Boxa * TessBaseAPIGetTextlines1(TessBaseAPI *handle, const BOOL raw_image, const int raw_padding, struct Pixa **pixa, int **blockids, int **paraids)
Definition: capi.cpp:332
char ** TessBaseAPIGetAvailableLanguagesAsVector(const TessBaseAPI *handle)
Definition: capi.cpp:246
struct Boxa * TessBaseAPIGetComponentImages(TessBaseAPI *handle, TessPageIteratorLevel level, BOOL text_only, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:350
Pix * TessBaseAPIGetInputImage(TessBaseAPI *handle)
Definition: capi.cpp:142
TessResultIterator * TessBaseAPIGetIterator(TessBaseAPI *handle)
Definition: capi.cpp:387
TessResultRenderer * TessHOcrRendererCreate2(const char *outputbase, BOOL font_info)
Definition: capi.cpp:49
BOOL TessBaseAPISetDebugVariable(TessBaseAPI *handle, const char *name, const char *value)
Definition: capi.cpp:162
float TessResultIteratorConfidence(const TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:575
TessResultIterator * TessResultIteratorCopy(const TessResultIterator *handle)
Definition: capi.cpp:551
void TessResultRendererInsert(TessResultRenderer *renderer, TessResultRenderer *next)
Definition: capi.cpp:86
TessPageIterator * TessResultIteratorGetPageIterator(TessResultIterator *handle)
Definition: capi.cpp:555
void TessPageIteratorBegin(TessPageIterator *handle)
Definition: capi.cpp:486
struct Boxa * TessBaseAPIGetWords(TessBaseAPI *handle, struct Pixa **pixa)
Definition: capi.cpp:342
TessChoiceIterator * TessResultIteratorGetChoiceIterator(const TessResultIterator *handle)
Definition: capi.cpp:563
void TessBaseGetBlockTextOrientations(TessBaseAPI *handle, int **block_orientation, bool **vertical_writing)
Definition: capi.cpp:473
BOOL TessPageIteratorIsAtFinalElement(const TessPageIterator *handle, TessPageIteratorLevel level, TessPageIteratorLevel element)
Definition: capi.cpp:498
void TessMonitorSetDeadlineMSecs(ETEXT_DESC *monitor, int deadline)
Definition: capi.cpp:681
BOOL TessChoiceIteratorNext(TessChoiceIterator *handle)
Definition: capi.cpp:641
char * TessResultIteratorGetUTF8Text(const TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:571
char * TessBaseAPIGetUNLVText(TessBaseAPI *handle)
Definition: capi.cpp:423
TessResultRenderer * TessHOcrRendererCreate(const char *outputbase)
Definition: capi.cpp:45
char ** TessBaseAPIGetLoadedLanguagesAsVector(const TessBaseAPI *handle)
Definition: capi.cpp:235
BOOL TessPageIteratorIsAtBeginningOf(const TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:494
void TessBaseAPIEnd(TessBaseAPI *handle)
Definition: capi.cpp:445
TessPolyBlockType TessPageIteratorBlockType(const TessPageIterator *handle)
Definition: capi.cpp:508
void TessBaseAPISetPageSegMode(TessBaseAPI *handle, TessPageSegMode mode)
Definition: capi.cpp:269
void TessBaseAPISetInputImage(TessBaseAPI *handle, Pix *pix)
Definition: capi.cpp:138
BOOL TessBaseAPISetVariable(TessBaseAPI *handle, const char *name, const char *value)
Definition: capi.cpp:158
const char * TessResultRendererExtention(TessResultRenderer *renderer)
Definition: capi.cpp:106
struct Pix * TessBaseAPIGetThresholdedImage(TessBaseAPI *handle)
Definition: capi.cpp:306
BOOL TessBaseAPIProcessPage(TessBaseAPI *handle, struct Pix *pix, int page_index, const char *filename, const char *retry_config, int timeout_millisec, TessResultRenderer *renderer)
Definition: capi.cpp:380
void TessDeleteText(const char *text)
Definition: capi.cpp:26
TessPageIterator * TessBaseAPIAnalyseLayout(TessBaseAPI *handle)
Definition: capi.cpp:367
int TessBaseAPIGetSourceYResolution(TessBaseAPI *handle)
Definition: capi.cpp:146
void * TessMonitorGetCancelThis(ETEXT_DESC *monitor)
Definition: capi.cpp:669
TessResultRenderer * TessLSTMBoxRendererCreate(const char *outputbase)
Definition: capi.cpp:78
struct Boxa * TessBaseAPIGetConnectedComponents(TessBaseAPI *handle, struct Pixa **cc)
Definition: capi.cpp:346
size_t TessBaseAPIGetOpenCLDevice(TessBaseAPI *, void **device)
Definition: capi.cpp:126
TessPageIterator * TessPageIteratorCopy(const TessPageIterator *handle)
Definition: capi.cpp:482
BOOL TessResultRendererBeginDocument(TessResultRenderer *renderer, const char *title)
Definition: capi.cpp:94
int TessBaseAPIRecognize(TessBaseAPI *handle, ETEXT_DESC *monitor)
Definition: capi.cpp:371
void TessBaseAPIClearAdaptiveClassifier(TessBaseAPI *handle)
Definition: capi.cpp:284
BOOL TessResultIteratorSymbolIsSubscript(const TessResultIterator *handle)
Definition: capi.cpp:629
TessResultRenderer * TessBoxTextRendererCreate(const char *outputbase)
Definition: capi.cpp:70
void TessDeleteTextArray(char **arr)
Definition: capi.cpp:30
ETEXT_DESC * TessMonitorCreate()
Definition: capi.cpp:653
void TessDeleteResultRenderer(TessResultRenderer *renderer)
Definition: capi.cpp:82
TessOcrEngineMode TessBaseAPIOem(const TessBaseAPI *handle)
Definition: capi.cpp:469