tesseract  4.00.00dev
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 #ifndef TESS_CAPI_INCLUDE_BASEAPI
19 # define TESS_CAPI_INCLUDE_BASEAPI
20 #endif
21 #include "capi.h"
22 #include "genericvector.h"
23 #include "strngs.h"
24 
26 {
27  return TessBaseAPI::Version();
28 }
29 
31 {
32  delete [] text;
33 }
34 
36 {
37  for (char** pos = arr; *pos != NULL; ++pos)
38  delete [] *pos;
39  delete [] arr;
40 }
41 
43 {
44  delete [] arr;
45 }
46 
47 TESS_API void TESS_CALL TessDeleteBlockList(BLOCK_LIST* block_list)
48 {
49  TessBaseAPI::DeleteBlockList(block_list);
50 }
51 
53 {
54  return new TessTextRenderer(outputbase);
55 }
56 
58 {
59  return new TessHOcrRenderer(outputbase);
60 }
61 
63 {
64  return new TessHOcrRenderer(outputbase, font_info);
65 }
66 
67 TESS_API TessResultRenderer* TESS_CALL TessPDFRendererCreate(const char* outputbase, const char* datadir,
68  BOOL textonly)
69 {
70  return new TessPDFRenderer(outputbase, datadir, textonly);
71 }
72 
74 {
75  return new TessUnlvRenderer(outputbase);
76 }
77 
79 {
80  return new TessBoxTextRenderer(outputbase);
81 }
82 
84 {
85  delete renderer;
86 }
87 
89 {
90  renderer->insert(next);
91 }
92 
94 {
95  return renderer->next();
96 }
97 
99 {
100  return renderer->BeginDocument(title);
101 }
102 
104 {
105  return renderer->AddImage(api);
106 }
107 
109 {
110  return renderer->EndDocument();
111 }
112 
114 {
115  return renderer->file_extension();
116 }
117 
119 {
120  return renderer->title();
121 }
122 
124 {
125  return renderer->imagenum();
126 }
127 
129 {
130  return new TessBaseAPI;
131 }
132 
134 {
135  delete handle;
136 }
137 
139 {
140  return handle->getOpenCLDevice(device);
141 }
142 
143 TESS_API void TESS_CALL TessBaseAPISetInputName(TessBaseAPI* handle, const char* name)
144 {
145  handle->SetInputName(name);
146 }
147 
149 {
150  return handle->GetInputName();
151 }
152 
154 {
155  handle->SetInputImage(pix);
156 }
157 
159 {
160  return handle->GetInputImage();
161 }
162 
164 {
165  return handle->GetSourceYResolution();
166 }
167 
169 {
170  return handle->GetDatapath();
171 }
172 
174 {
175  handle->SetOutputName(name);
176 }
177 
178 TESS_API BOOL TESS_CALL TessBaseAPISetVariable(TessBaseAPI* handle, const char* name, const char* value)
179 {
180  return handle->SetVariable(name, value) ? TRUE : FALSE;
181 }
182 
183 TESS_API BOOL TESS_CALL TessBaseAPISetDebugVariable(TessBaseAPI* handle, const char* name, const char* value)
184 {
185  return handle->SetVariable(name, value) ? TRUE : FALSE;
186 }
187 
188 TESS_API BOOL TESS_CALL TessBaseAPIGetIntVariable(const TessBaseAPI* handle, const char* name, int* value)
189 {
190  return handle->GetIntVariable(name, value) ? TRUE : FALSE;
191 }
192 
193 TESS_API BOOL TESS_CALL TessBaseAPIGetBoolVariable(const TessBaseAPI* handle, const char* name, BOOL* value)
194 {
195  bool boolValue;
196  if (handle->GetBoolVariable(name, &boolValue))
197  {
198  *value = boolValue ? TRUE : FALSE;
199  return TRUE;
200  }
201  else
202  {
203  return FALSE;
204  }
205 }
206 
207 TESS_API BOOL TESS_CALL TessBaseAPIGetDoubleVariable(const TessBaseAPI* handle, const char* name, double* value)
208 {
209  return handle->GetDoubleVariable(name, value) ? TRUE : FALSE;
210 }
211 
212 TESS_API const char* TESS_CALL TessBaseAPIGetStringVariable(const TessBaseAPI* handle, const char* name)
213 {
214  return handle->GetStringVariable(name);
215 }
216 
218 {
219  handle->PrintVariables(fp);
220 }
221 
223 {
224  FILE* fp = fopen(filename, "w");
225  if (fp != NULL)
226  {
227  handle->PrintVariables(fp);
228  fclose(fp);
229  return TRUE;
230  }
231  return FALSE;
232 }
233 
235 {
236  return handle->GetVariableAsString(name, val) ? TRUE : FALSE;
237 }
238 
239 TESS_API int TESS_CALL TessBaseAPIInit4(TessBaseAPI* handle, const char* datapath, const char* language,
240  TessOcrEngineMode mode, char** configs, int configs_size,
241  char** vars_vec, char** vars_values, size_t vars_vec_size,
242  BOOL set_only_non_debug_params)
243 {
244  GenericVector<STRING> varNames;
245  GenericVector<STRING> varValues;
246  if (vars_vec != NULL && vars_values != NULL) {
247  for (size_t i = 0; i < vars_vec_size; i++) {
248  varNames.push_back(STRING(vars_vec[i]));
249  varValues.push_back(STRING(vars_values[i]));
250  }
251  }
252 
253  return handle->Init(datapath, language, mode, configs, configs_size, &varNames, &varValues, set_only_non_debug_params);
254 }
255 
256 
257 TESS_API int TESS_CALL TessBaseAPIInit1(TessBaseAPI* handle, const char* datapath, const char* language, TessOcrEngineMode oem,
258  char** configs, int configs_size)
259 {
260  return handle->Init(datapath, language, oem, configs, configs_size, NULL, NULL, false);
261 }
262 
263 TESS_API int TESS_CALL TessBaseAPIInit2(TessBaseAPI* handle, const char* datapath, const char* language, TessOcrEngineMode oem)
264 {
265  return handle->Init(datapath, language, oem);
266 }
267 
268 TESS_API int TESS_CALL TessBaseAPIInit3(TessBaseAPI* handle, const char* datapath, const char* language)
269 {
270  return handle->Init(datapath, language);
271 }
272 
274 {
275  return handle->GetInitLanguagesAsString();
276 }
277 
279 {
280  GenericVector<STRING> languages;
281  handle->GetLoadedLanguagesAsVector(&languages);
282  char** arr = new char*[languages.size() + 1];
283  for (int index = 0; index < languages.size(); ++index)
284  arr[index] = languages[index].strdup();
285  arr[languages.size()] = NULL;
286  return arr;
287 }
288 
290 {
291  GenericVector<STRING> languages;
292  handle->GetAvailableLanguagesAsVector(&languages);
293  char** arr = new char*[languages.size() + 1];
294  for (int index = 0; index < languages.size(); ++index)
295  arr[index] = languages[index].strdup();
296  arr[languages.size()] = NULL;
297  return arr;
298 }
299 
300 TESS_API int TESS_CALL TessBaseAPIInitLangMod(TessBaseAPI* handle, const char* datapath, const char* language)
301 {
302  return handle->InitLangMod(datapath, language);
303 }
304 
306 {
307  handle->InitForAnalysePage();
308 }
309 
311 {
312  handle->ReadConfigFile(filename);
313 }
314 
316 {
317  handle->ReadDebugConfigFile(filename);
318 }
319 
321 {
322  handle->SetPageSegMode(mode);
323 }
324 
326 {
327  return handle->GetPageSegMode();
328 }
329 
330 TESS_API char* TESS_CALL TessBaseAPIRect(TessBaseAPI* handle, const unsigned char* imagedata,
331  int bytes_per_pixel, int bytes_per_line,
332  int left, int top, int width, int height)
333 {
334  return handle->TesseractRect(imagedata, bytes_per_pixel, bytes_per_line, left, top, width, height);
335 }
336 
338 {
339  handle->ClearAdaptiveClassifier();
340 }
341 
342 TESS_API void TESS_CALL TessBaseAPISetImage(TessBaseAPI* handle, const unsigned char* imagedata, int width, int height,
343  int bytes_per_pixel, int bytes_per_line)
344 {
345  handle->SetImage(imagedata, width, height, bytes_per_pixel, bytes_per_line);
346 }
347 
348 TESS_API void TESS_CALL TessBaseAPISetImage2(TessBaseAPI* handle, struct Pix* pix)
349 {
350  return handle->SetImage(pix);
351 }
352 
354 {
355  handle->SetSourceResolution(ppi);
356 }
357 
358 TESS_API void TESS_CALL TessBaseAPISetRectangle(TessBaseAPI* handle, int left, int top, int width, int height)
359 {
360  handle->SetRectangle(left, top, width, height);
361 }
362 
363 TESS_API void TESS_CALL TessBaseAPISetThresholder(TessBaseAPI* handle, TessImageThresholder* thresholder)
364 {
365  handle->SetThresholder(thresholder);
366 }
367 
369 {
370  return handle->GetThresholdedImage();
371 }
372 
373 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetRegions(TessBaseAPI* handle, struct Pixa** pixa)
374 {
375  return handle->GetRegions(pixa);
376 }
377 
378 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetTextlines(TessBaseAPI* handle, struct Pixa** pixa, int** blockids)
379 {
380  return handle->GetTextlines(pixa, blockids);
381 }
382 
383 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetTextlines1(TessBaseAPI* handle, const BOOL raw_image, const int raw_padding,
384  struct Pixa** pixa, int** blockids, int** paraids)
385 {
386  return handle->GetTextlines(raw_image, raw_padding, pixa, blockids, paraids);
387 }
388 
389 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetStrips(TessBaseAPI* handle, struct Pixa** pixa, int** blockids)
390 {
391  return handle->GetStrips(pixa, blockids);
392 }
393 
394 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetWords(TessBaseAPI* handle, struct Pixa** pixa)
395 {
396  return handle->GetWords(pixa);
397 }
398 
399 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetConnectedComponents(TessBaseAPI* handle, struct Pixa** cc)
400 {
401  return handle->GetConnectedComponents(cc);
402 }
403 
404 TESS_API struct Boxa* TESS_CALL TessBaseAPIGetComponentImages(TessBaseAPI* handle, TessPageIteratorLevel level, BOOL text_only, struct Pixa** pixa, int** blockids)
405 {
406  return handle->GetComponentImages(level, text_only != FALSE, pixa, blockids);
407 }
408 
409 TESS_API struct Boxa*
411  const BOOL raw_image, const int raw_padding,
412  struct Pixa** pixa, int** blockids, int** paraids)
413 {
414  return handle->GetComponentImages(level, text_only != FALSE, raw_image, raw_padding, pixa, blockids, paraids);
415 }
416 
418 {
419  return handle->GetThresholdedImageScaleFactor();
420 }
421 
423 {
424  handle->DumpPGM(filename);
425 }
426 
428 {
429  return handle->AnalyseLayout();
430 }
431 
433 {
434  return handle->Recognize(monitor);
435 }
436 
438 {
439  return handle->RecognizeForChopTest(monitor);
440 }
441 
442 TESS_API BOOL TESS_CALL TessBaseAPIProcessPages(TessBaseAPI* handle, const char* filename, const char* retry_config,
443  int timeout_millisec, TessResultRenderer* renderer)
444 {
445  if (handle->ProcessPages(filename, retry_config, timeout_millisec, renderer))
446  return TRUE;
447  else
448  return FALSE;
449 }
450 
451 TESS_API BOOL TESS_CALL TessBaseAPIProcessPage(TessBaseAPI* handle, struct Pix* pix, int page_index, const char* filename,
452  const char* retry_config, int timeout_millisec, TessResultRenderer* renderer)
453 {
454  if (handle->ProcessPage(pix, page_index, filename, retry_config, timeout_millisec, renderer))
455  return TRUE;
456  else
457  return FALSE;
458 }
459 
461 {
462  return handle->GetIterator();
463 }
464 
466 {
467  return handle->GetMutableIterator();
468 }
469 
471 {
472  return handle->GetUTF8Text();
473 }
474 
475 TESS_API char* TESS_CALL TessBaseAPIGetHOCRText(TessBaseAPI* handle, int page_number)
476 {
477  return handle->GetHOCRText(NULL, page_number);
478 }
479 
480 TESS_API char* TESS_CALL TessBaseAPIGetBoxText(TessBaseAPI* handle, int page_number)
481 {
482  return handle->GetBoxText(page_number);
483 }
484 
486 {
487  return handle->GetUNLVText();
488 }
489 
491 {
492  return handle->MeanTextConf();
493 }
494 
496 {
497  return handle->AllWordConfidences();
498 }
499 
501 {
502  return handle->AdaptToWordStr(mode, wordstr) ? TRUE : FALSE;
503 }
504 
506 {
507  handle->Clear();
508 }
509 
511 {
512  handle->End();
513 }
514 
515 TESS_API int TESS_CALL TessBaseAPIIsValidWord(TessBaseAPI* handle, const char* word)
516 {
517  return handle->IsValidWord(word);
518 }
519 
520 TESS_API BOOL TESS_CALL TessBaseAPIGetTextDirection(TessBaseAPI* handle, int* out_offset, float* out_slope)
521 {
522  return handle->GetTextDirection(out_offset, out_slope) ? TRUE : FALSE;
523 }
524 
526 {
527  handle->SetDictFunc(f);
528 }
529 
531 {
532  handle->ClearPersistentCache();
533 }
534 
535 TESS_API void TESS_CALL TessBaseAPISetProbabilityInContextFunc(TessBaseAPI* handle, TessProbabilityInContextFunc f)
536 {
537  handle->SetProbabilityInContextFunc(f);
538 }
539 
541 {
542  return FALSE; // Unsafe ABI, return FALSE always
543 }
544 
546  int* orient_deg, float* orient_conf, const char** script_name, float* script_conf)
547 {
548  bool success;
549  success = handle->DetectOrientationScript(orient_deg, orient_conf, script_name, script_conf);
550  return (BOOL)success;
551 }
552 
553 
555  int* num_features, int* FeatureOutlineIndex)
556 {
557  handle->GetFeaturesForBlob(blob, int_features, num_features, FeatureOutlineIndex);
558 }
559 
560 TESS_API ROW* TESS_CALL TessFindRowForBox(BLOCK_LIST* blocks, int left, int top, int right, int bottom)
561 {
562  return TessBaseAPI::FindRowForBox(blocks, left, top, right, bottom);
563 }
564 
565 TESS_API void TESS_CALL TessBaseAPIRunAdaptiveClassifier(TessBaseAPI* handle, TBLOB* blob, int num_max_matches,
566  int* unichar_ids, float* ratings, int* num_matches_returned)
567 {
568  handle->RunAdaptiveClassifier(blob, num_max_matches, unichar_ids, ratings, num_matches_returned);
569 }
570 
571 TESS_API const char* TESS_CALL TessBaseAPIGetUnichar(TessBaseAPI* handle, int unichar_id)
572 {
573  return handle->GetUnichar(unichar_id);
574 }
575 
576 TESS_API const TessDawg* TESS_CALL TessBaseAPIGetDawg(const TessBaseAPI* handle, int i)
577 {
578  return handle->GetDawg(i);
579 }
580 
582 {
583  return handle->NumDawgs();
584 }
585 
586 TESS_API ROW* TESS_CALL TessMakeTessOCRRow(float baseline, float xheight, float descender, float ascender)
587 {
588  return TessBaseAPI::MakeTessOCRRow(baseline, xheight, descender, ascender);
589 }
590 
592 {
593  return TessBaseAPI::MakeTBLOB(pix);
594 }
595 
596 TESS_API void TESS_CALL TessNormalizeTBLOB(TBLOB* tblob, ROW* row, BOOL numeric_mode)
597 {
598  TessBaseAPI::NormalizeTBLOB(tblob, row, numeric_mode != FALSE);
599 }
600 
602 {
603  return handle->oem();
604 }
605 
606 TESS_API void TESS_CALL TessBaseAPIInitTruthCallback(TessBaseAPI* handle, TessTruthCallback* cb)
607 {
608  handle->InitTruthCallback(cb);
609 }
610 
612 {
613  handle->set_min_orientation_margin(margin);
614 }
615 
616 TESS_API void TESS_CALL TessBaseGetBlockTextOrientations(TessBaseAPI* handle, int** block_orientation, bool** vertical_writing)
617 {
618  handle->GetBlockTextOrientations(block_orientation, vertical_writing);
619 }
620 
622 {
623  return handle->FindLinesCreateBlockList();
624 }
625 
627 {
628  delete handle;
629 }
630 
632 {
633  return new TessPageIterator(*handle);
634 }
635 
637 {
638  handle->Begin();
639 }
640 
642 {
643  return handle->Next(level) ? TRUE : FALSE;
644 }
645 
647 {
648  return handle->IsAtBeginningOf(level) ? TRUE : FALSE;
649 }
650 
652  TessPageIteratorLevel element)
653 {
654  return handle->IsAtFinalElement(level, element) ? TRUE : FALSE;
655 }
656 
658  int* left, int* top, int* right, int* bottom)
659 {
660  return handle->BoundingBox(level, left, top, right, bottom) ? TRUE : FALSE;
661 }
662 
664 {
665  return handle->BlockType();
666 }
667 
669 {
670  return handle->GetBinaryImage(level);
671 }
672 
674  struct Pix* original_image, int* left, int* top)
675 {
676  return handle->GetImage(level, padding, original_image, left, top);
677 }
678 
680  int* x1, int* y1, int* x2, int* y2)
681 {
682  return handle->Baseline(level, x1, y1, x2, y2) ? TRUE : FALSE;
683 }
684 
686  TessWritingDirection* writing_direction, TessTextlineOrder* textline_order,
687  float* deskew_angle)
688 {
689  handle->Orientation(orientation, writing_direction, textline_order, deskew_angle);
690 }
691 
693  BOOL *is_list_item, BOOL *is_crown, int *first_line_indent)
694 {
695  bool bool_is_list_item, bool_is_crown;
696  handle->ParagraphInfo(justification, &bool_is_list_item, &bool_is_crown, first_line_indent);
697  if (is_list_item)
698  *is_list_item = bool_is_list_item ? TRUE : FALSE;
699  if (is_crown)
700  *is_crown = bool_is_crown ? TRUE : FALSE;
701 }
702 
703 
705 {
706  delete handle;
707 }
708 
710 {
711  return new TessResultIterator(*handle);
712 }
713 
715 {
716  return handle;
717 }
718 
720 {
721  return handle;
722 }
723 
725 {
726  return new TessChoiceIterator(*handle);
727 }
728 
730 {
731  return handle->Next(level);
732 }
733 
735 {
736  return handle->GetUTF8Text(level);
737 }
738 
740 {
741  return handle->Confidence(level);
742 }
743 
745 {
746  return handle->WordRecognitionLanguage();
747 }
748 
749 TESS_API const char* TESS_CALL TessResultIteratorWordFontAttributes(const TessResultIterator* handle, BOOL* is_bold, BOOL* is_italic,
750  BOOL* is_underlined, BOOL* is_monospace, BOOL* is_serif,
751  BOOL* is_smallcaps, int* pointsize, int* font_id)
752 {
753  bool bool_is_bold, bool_is_italic, bool_is_underlined, bool_is_monospace, bool_is_serif, bool_is_smallcaps;
754  const char* ret = handle->WordFontAttributes(&bool_is_bold, &bool_is_italic, &bool_is_underlined, &bool_is_monospace, &bool_is_serif,
755  &bool_is_smallcaps, pointsize, font_id);
756  if (is_bold)
757  *is_bold = bool_is_bold ? TRUE : FALSE;
758  if (is_italic)
759  *is_italic = bool_is_italic ? TRUE : FALSE;
760  if (is_underlined)
761  *is_underlined = bool_is_underlined ? TRUE : FALSE;
762  if (is_monospace)
763  *is_monospace = bool_is_monospace ? TRUE : FALSE;
764  if (is_serif)
765  *is_serif = bool_is_serif ? TRUE : FALSE;
766  if (is_smallcaps)
767  *is_smallcaps = bool_is_smallcaps ? TRUE : FALSE;
768  return ret;
769 }
770 
772 {
773  return handle->WordIsFromDictionary() ? TRUE : FALSE;
774 }
775 
777 {
778  return handle->WordIsNumeric() ? TRUE : FALSE;
779 }
780 
782 {
783  return handle->SymbolIsSuperscript() ? TRUE : FALSE;
784 }
785 
787 {
788  return handle->SymbolIsSubscript() ? TRUE : FALSE;
789 }
790 
792 {
793  return handle->SymbolIsDropcap() ? TRUE : FALSE;
794 }
795 
797 {
798  delete handle;
799 }
800 
802 {
803  return handle->Next();
804 }
805 
807 {
808  return handle->GetUTF8Text();
809 }
810 
812 {
813  return handle->Confidence();
814 }
TESS_API struct Pix *TESS_CALL TessBaseAPIGetThresholdedImage(TessBaseAPI *handle)
Definition: capi.cpp:368
TESS_API void TESS_CALL TessBaseAPISetInputName(TessBaseAPI *handle, const char *name)
Definition: capi.cpp:143
#define TESS_CALL
Definition: capi.h:39
struct TessChoiceIterator TessChoiceIterator
Definition: capi.h:87
TESS_API int TESS_CALL TessBaseAPIIsValidWord(TessBaseAPI *handle, const char *word)
Definition: capi.cpp:515
TESS_API TessPageIterator *TESS_CALL TessResultIteratorGetPageIterator(TessResultIterator *handle)
Definition: capi.cpp:714
TESS_API void TESS_CALL TessChoiceIteratorDelete(TessChoiceIterator *handle)
Definition: capi.cpp:796
TESS_API int TESS_CALL TessResultRendererImageNum(TessResultRenderer *renderer)
Definition: capi.cpp:123
TessWritingDirection
Definition: capi.h:98
TESS_API void TESS_CALL TessBaseAPISetMinOrientationMargin(TessBaseAPI *handle, double margin)
Definition: capi.cpp:611
TESS_API size_t TESS_CALL TessBaseAPIGetOpenCLDevice(TessBaseAPI *handle, void **device)
Definition: capi.cpp:138
TESS_API void TESS_CALL TessBaseAPISetThresholder(TessBaseAPI *handle, TessImageThresholder *thresholder)
Definition: capi.cpp:363
TESS_API void TESS_CALL TessPageIteratorBegin(TessPageIterator *handle)
Definition: capi.cpp:636
TESS_API BOOL TESS_CALL TessBaseAPIDetectOrientationScript(TessBaseAPI *handle, int *orient_deg, float *orient_conf, const char **script_name, float *script_conf)
Definition: capi.cpp:545
TESS_API char **TESS_CALL TessBaseAPIGetLoadedLanguagesAsVector(const TessBaseAPI *handle)
Definition: capi.cpp:278
TESS_API int TESS_CALL TessBaseAPIGetThresholdedImageScaleFactor(const TessBaseAPI *handle)
Definition: capi.cpp:417
TESS_API void TESS_CALL TessDeleteText(char *text)
Definition: capi.cpp:30
TESS_API BOOL TESS_CALL TessPageIteratorBaseline(const TessPageIterator *handle, TessPageIteratorLevel level, int *x1, int *y1, int *x2, int *y2)
Definition: capi.cpp:679
TESS_API TessResultRenderer *TESS_CALL TessPDFRendererCreate(const char *outputbase, const char *datadir, BOOL textonly)
Definition: capi.cpp:67
TessParagraphJustification
Definition: capi.h:97
struct TessUnlvRenderer TessUnlvRenderer
Definition: capi.h:81
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetRegions(TessBaseAPI *handle, struct Pixa **pixa)
Definition: capi.cpp:373
#define TRUE
Definition: capi.h:45
TessPageSegMode
Definition: capi.h:89
TESS_API const char *TESS_CALL TessBaseAPIGetUnichar(TessBaseAPI *handle, int unichar_id)
Definition: capi.cpp:571
struct TessPDFRenderer TessPDFRenderer
Definition: capi.h:80
TESS_API void TESS_CALL TessBaseAPIClearPersistentCache(TessBaseAPI *handle)
Definition: capi.cpp:530
TESS_API BOOL TESS_CALL TessBaseAPIPrintVariablesToFile(const TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:222
TESS_API const char *TESS_CALL 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:749
TESS_API void TESS_CALL TessBaseAPISetDictFunc(TessBaseAPI *handle, TessDictFunc f)
Definition: capi.cpp:525
TESS_API struct Boxa *TESS_CALL 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:410
#define TESS_API
Definition: platform.h:81
struct TessBaseAPI TessBaseAPI
Definition: capi.h:83
TESS_API const char *TESS_CALL TessBaseAPIGetInputName(TessBaseAPI *handle)
Definition: capi.cpp:148
TESS_API BOOL TESS_CALL TessBaseAPIGetVariableAsString(TessBaseAPI *handle, const char *name, STRING *val)
Definition: capi.cpp:234
TESS_API void TESS_CALL TessBaseAPIClear(TessBaseAPI *handle)
Definition: capi.cpp:505
TESS_API char *TESS_CALL TessBaseAPIGetHOCRText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:475
TESS_API BOOL TESS_CALL TessChoiceIteratorNext(TessChoiceIterator *handle)
Definition: capi.cpp:801
struct TessTextRenderer TessTextRenderer
Definition: capi.h:78
TessPolyBlockType
Definition: capi.h:93
int push_back(T object)
TESS_API char *TESS_CALL TessBaseAPIGetUTF8Text(TessBaseAPI *handle)
Definition: capi.cpp:470
TESS_API BOOL TESS_CALL TessBaseAPIGetBoolVariable(const TessBaseAPI *handle, const char *name, BOOL *value)
Definition: capi.cpp:193
TESS_API void TESS_CALL TessBaseAPISetSourceResolution(TessBaseAPI *handle, int ppi)
Definition: capi.cpp:353
TESS_API const char *TESS_CALL TessChoiceIteratorGetUTF8Text(const TessChoiceIterator *handle)
Definition: capi.cpp:806
TESS_API void TESS_CALL TessDeleteTextArray(char **arr)
Definition: capi.cpp:35
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetComponentImages(TessBaseAPI *handle, TessPageIteratorLevel level, BOOL text_only, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:404
TESS_API BOOL TESS_CALL TessPageIteratorIsAtFinalElement(const TessPageIterator *handle, TessPageIteratorLevel level, TessPageIteratorLevel element)
Definition: capi.cpp:651
TESS_API void TESS_CALL TessBaseAPIRunAdaptiveClassifier(TessBaseAPI *handle, TBLOB *blob, int num_max_matches, int *unichar_ids, float *ratings, int *num_matches_returned)
Definition: capi.cpp:565
TESS_API float TESS_CALL TessChoiceIteratorConfidence(const TessChoiceIterator *handle)
Definition: capi.cpp:811
TESS_API void TESS_CALL TessBaseAPIDumpPGM(TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:422
TESS_API const TessDawg *TESS_CALL TessBaseAPIGetDawg(const TessBaseAPI *handle, int i)
Definition: capi.cpp:576
TESS_API BOOL TESS_CALL TessBaseAPIAdaptToWordStr(TessBaseAPI *handle, TessPageSegMode mode, const char *wordstr)
Definition: capi.cpp:500
TESS_API void TESS_CALL TessBaseAPISetRectangle(TessBaseAPI *handle, int left, int top, int width, int height)
Definition: capi.cpp:358
TESS_API char *TESS_CALL TessBaseAPIGetBoxText(TessBaseAPI *handle, int page_number)
Definition: capi.cpp:480
TESS_API BOOL TESS_CALL TessBaseAPISetVariable(TessBaseAPI *handle, const char *name, const char *value)
Definition: capi.cpp:178
TESS_API BOOL TESS_CALL TessBaseAPIDetectOS(TessBaseAPI *handle, OSResults *results)
Definition: capi.cpp:540
TESS_API TessResultRenderer *TESS_CALL TessUnlvRendererCreate(const char *outputbase)
Definition: capi.cpp:73
TessPageIteratorLevel
Definition: capi.h:92
TESS_API BOOL TESS_CALL TessBaseAPISetDebugVariable(TessBaseAPI *handle, const char *name, const char *value)
Definition: capi.cpp:183
TESS_API char *TESS_CALL TessResultIteratorGetUTF8Text(const TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:734
TESS_API TessPolyBlockType TESS_CALL TessPageIteratorBlockType(const TessPageIterator *handle)
Definition: capi.cpp:663
TESS_API void TESS_CALL TessNormalizeTBLOB(TBLOB *tblob, ROW *row, BOOL numeric_mode)
Definition: capi.cpp:596
TESS_API Pix *TESS_CALL TessBaseAPIGetInputImage(TessBaseAPI *handle)
Definition: capi.cpp:158
TESS_API void TESS_CALL TessPageIteratorDelete(TessPageIterator *handle)
Definition: capi.cpp:626
#define BOOL
Definition: capi.h:44
TESS_API TessResultRenderer *TESS_CALL TessBoxTextRendererCreate(const char *outputbase)
Definition: capi.cpp:78
TESS_API TessResultRenderer *TESS_CALL TessTextRendererCreate(const char *outputbase)
Definition: capi.cpp:52
TESS_API TessChoiceIterator *TESS_CALL TessResultIteratorGetChoiceIterator(const TessResultIterator *handle)
Definition: capi.cpp:724
TESS_API void TESS_CALL TessBaseAPIInitForAnalysePage(TessBaseAPI *handle)
Definition: capi.cpp:305
TESS_API int TESS_CALL 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:239
TESS_API BOOL TESS_CALL TessPageIteratorIsAtBeginningOf(const TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:646
int size() const
Definition: genericvector.h:72
TESS_API void TESS_CALL TessBaseAPISetImage2(TessBaseAPI *handle, struct Pix *pix)
Definition: capi.cpp:348
TESS_API int TESS_CALL TessBaseAPIInit3(TessBaseAPI *handle, const char *datapath, const char *language)
Definition: capi.cpp:268
TESS_API void TESS_CALL TessBaseAPISetOutputName(TessBaseAPI *handle, const char *name)
Definition: capi.cpp:173
TESS_API BOOL TESS_CALL TessPageIteratorBoundingBox(const TessPageIterator *handle, TessPageIteratorLevel level, int *left, int *top, int *right, int *bottom)
Definition: capi.cpp:657
TESS_API TessOcrEngineMode TESS_CALL TessBaseAPIOem(const TessBaseAPI *handle)
Definition: capi.cpp:601
TESS_API void TESS_CALL TessBaseAPIReadConfigFile(TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:310
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetConnectedComponents(TessBaseAPI *handle, struct Pixa **cc)
Definition: capi.cpp:399
TessOrientation
Definition: capi.h:96
TESS_API TBLOB *TESS_CALL TessMakeTBLOB(struct Pix *pix)
Definition: capi.cpp:591
TessOcrEngineMode
Definition: capi.h:88
TESS_API struct Pix *TESS_CALL TessPageIteratorGetBinaryImage(const TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:668
TESS_API BOOL TESS_CALL TessResultRendererBeginDocument(TessResultRenderer *renderer, const char *title)
Definition: capi.cpp:98
TESS_API void TESS_CALL TessBaseAPISetImage(TessBaseAPI *handle, const unsigned char *imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line)
Definition: capi.cpp:342
struct TessHOcrRenderer TessHOcrRenderer
Definition: capi.h:79
TESS_API void TESS_CALL TessBaseAPISetProbabilityInContextFunc(TessBaseAPI *handle, TessProbabilityInContextFunc f)
Definition: capi.cpp:535
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetWords(TessBaseAPI *handle, struct Pixa **pixa)
Definition: capi.cpp:394
TESS_API TessResultRenderer *TESS_CALL TessResultRendererNext(TessResultRenderer *renderer)
Definition: capi.cpp:93
TESS_API void TESS_CALL TessDeleteBlockList(BLOCK_LIST *block_list)
Definition: capi.cpp:47
TESS_API const char *TESS_CALL TessResultIteratorWordRecognitionLanguage(const TessResultIterator *handle)
Definition: capi.cpp:744
Definition: strngs.h:45
#define FALSE
Definition: capi.h:46
const char int mode
Definition: ioapi.h:38
TESS_API int TESS_CALL TessBaseAPIGetSourceYResolution(TessBaseAPI *handle)
Definition: capi.cpp:163
TESS_API void TESS_CALL TessBaseAPIEnd(TessBaseAPI *handle)
Definition: capi.cpp:510
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetTextlines1(TessBaseAPI *handle, const BOOL raw_image, const int raw_padding, struct Pixa **pixa, int **blockids, int **paraids)
Definition: capi.cpp:383
TESS_API BOOL TESS_CALL TessBaseAPIGetIntVariable(const TessBaseAPI *handle, const char *name, int *value)
Definition: capi.cpp:188
TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsSuperscript(const TessResultIterator *handle)
Definition: capi.cpp:781
TESS_API int TESS_CALL TessBaseAPIInitLangMod(TessBaseAPI *handle, const char *datapath, const char *language)
Definition: capi.cpp:300
TESS_API ROW *TESS_CALL TessFindRowForBox(BLOCK_LIST *blocks, int left, int top, int right, int bottom)
Definition: capi.cpp:560
TESS_API BOOL TESS_CALL TessBaseAPIProcessPages(TessBaseAPI *handle, const char *filename, const char *retry_config, int timeout_millisec, TessResultRenderer *renderer)
Definition: capi.cpp:442
TESS_API void TESS_CALL TessBaseAPIPrintVariables(const TessBaseAPI *handle, FILE *fp)
Definition: capi.cpp:217
TESS_API const char *TESS_CALL TessBaseAPIGetDatapath(TessBaseAPI *handle)
Definition: capi.cpp:168
TESS_API int TESS_CALL TessBaseAPIInit2(TessBaseAPI *handle, const char *datapath, const char *language, TessOcrEngineMode oem)
Definition: capi.cpp:263
TESS_API BOOL TESS_CALL TessResultRendererAddImage(TessResultRenderer *renderer, TessBaseAPI *api)
Definition: capi.cpp:103
TESS_API void TESS_CALL TessBaseGetBlockTextOrientations(TessBaseAPI *handle, int **block_orientation, bool **vertical_writing)
Definition: capi.cpp:616
TESS_API void TESS_CALL TessBaseAPIInitTruthCallback(TessBaseAPI *handle, TessTruthCallback *cb)
Definition: capi.cpp:606
TESS_API void TESS_CALL TessPageIteratorParagraphInfo(TessPageIterator *handle, TessParagraphJustification *justification, BOOL *is_list_item, BOOL *is_crown, int *first_line_indent)
Definition: capi.cpp:692
TESS_API BOOL TESS_CALL TessPageIteratorNext(TessPageIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:641
TESS_API int *TESS_CALL TessBaseAPIAllWordConfidences(TessBaseAPI *handle)
Definition: capi.cpp:495
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetStrips(TessBaseAPI *handle, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:389
TESS_API const char *TESS_CALL TessResultRendererTitle(TessResultRenderer *renderer)
Definition: capi.cpp:118
TESS_API BOOL TESS_CALL TessResultRendererEndDocument(TessResultRenderer *renderer)
Definition: capi.cpp:108
TESS_API void TESS_CALL TessBaseAPISetPageSegMode(TessBaseAPI *handle, TessPageSegMode mode)
Definition: capi.cpp:320
TESS_API char *TESS_CALL TessBaseAPIGetUNLVText(TessBaseAPI *handle)
Definition: capi.cpp:485
TESS_API struct Pix *TESS_CALL TessPageIteratorGetImage(const TessPageIterator *handle, TessPageIteratorLevel level, int padding, struct Pix *original_image, int *left, int *top)
Definition: capi.cpp:673
TESS_API TessResultIterator *TESS_CALL TessResultIteratorCopy(const TessResultIterator *handle)
Definition: capi.cpp:709
Definition: blobs.h:261
TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsSubscript(const TessResultIterator *handle)
Definition: capi.cpp:786
TESS_API const TessPageIterator *TESS_CALL TessResultIteratorGetPageIteratorConst(const TessResultIterator *handle)
Definition: capi.cpp:719
TessTextlineOrder
Definition: capi.h:99
struct TessResultIterator TessResultIterator
Definition: capi.h:85
TESS_API void TESS_CALL TessBaseAPIGetFeaturesForBlob(TessBaseAPI *handle, TBLOB *blob, INT_FEATURE_STRUCT *int_features, int *num_features, int *FeatureOutlineIndex)
Definition: capi.cpp:554
const char * filename
Definition: ioapi.h:38
TESS_API void TESS_CALL TessResultRendererInsert(TessResultRenderer *renderer, TessResultRenderer *next)
Definition: capi.cpp:88
TESS_API ROW *TESS_CALL TessMakeTessOCRRow(float baseline, float xheight, float descender, float ascender)
Definition: capi.cpp:586
TESS_API char *TESS_CALL 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:330
TESS_API const char *TESS_CALL TessResultRendererExtention(TessResultRenderer *renderer)
Definition: capi.cpp:113
TESS_API const char *TESS_CALL TessVersion()
Definition: capi.cpp:25
TESS_API TessResultRenderer *TESS_CALL TessHOcrRendererCreate(const char *outputbase)
Definition: capi.cpp:57
struct TessResultRenderer TessResultRenderer
Definition: capi.h:77
TESS_API TessMutableIterator *TESS_CALL TessBaseAPIGetMutableIterator(TessBaseAPI *handle)
Definition: capi.cpp:465
struct TessMutableIterator TessMutableIterator
Definition: capi.h:86
TESS_API void TESS_CALL TessDeleteResultRenderer(TessResultRenderer *renderer)
Definition: capi.cpp:83
TESS_API BOOL TESS_CALL TessBaseAPIProcessPage(TessBaseAPI *handle, struct Pix *pix, int page_index, const char *filename, const char *retry_config, int timeout_millisec, TessResultRenderer *renderer)
Definition: capi.cpp:451
TESS_API void TESS_CALL TessBaseAPIDelete(TessBaseAPI *handle)
Definition: capi.cpp:133
TESS_API void TESS_CALL TessBaseAPIReadDebugConfigFile(TessBaseAPI *handle, const char *filename)
Definition: capi.cpp:315
TESS_API void TESS_CALL TessDeleteIntArray(int *arr)
Definition: capi.cpp:42
TESS_API BOOL TESS_CALL TessResultIteratorWordIsFromDictionary(const TessResultIterator *handle)
Definition: capi.cpp:771
TESS_API void TESS_CALL TessBaseAPISetInputImage(TessBaseAPI *handle, Pix *pix)
Definition: capi.cpp:153
TESS_API TessPageIterator *TESS_CALL TessBaseAPIAnalyseLayout(TessBaseAPI *handle)
Definition: capi.cpp:427
TESS_API BOOL TESS_CALL TessBaseAPIGetTextDirection(TessBaseAPI *handle, int *out_offset, float *out_slope)
Definition: capi.cpp:520
TESS_API int TESS_CALL TessBaseAPIInit1(TessBaseAPI *handle, const char *datapath, const char *language, TessOcrEngineMode oem, char **configs, int configs_size)
Definition: capi.cpp:257
TESS_API float TESS_CALL TessResultIteratorConfidence(const TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:739
TESS_API const char *TESS_CALL TessBaseAPIGetInitLanguagesAsString(const TessBaseAPI *handle)
Definition: capi.cpp:273
TESS_API TessPageIterator *TESS_CALL TessPageIteratorCopy(const TessPageIterator *handle)
Definition: capi.cpp:631
TESS_API int TESS_CALL TessBaseAPINumDawgs(const TessBaseAPI *handle)
Definition: capi.cpp:581
TESS_API int TESS_CALL TessBaseAPIRecognize(TessBaseAPI *handle, ETEXT_DESC *monitor)
Definition: capi.cpp:432
TESS_API BOOL TESS_CALL TessBaseAPIGetDoubleVariable(const TessBaseAPI *handle, const char *name, double *value)
Definition: capi.cpp:207
Definition: ocrrow.h:32
TESS_API TessBaseAPI *TESS_CALL TessBaseAPICreate()
Definition: capi.cpp:128
TESS_API BLOCK_LIST *TESS_CALL TessBaseAPIFindLinesCreateBlockList(TessBaseAPI *handle)
Definition: capi.cpp:621
struct TessBoxTextRenderer TessBoxTextRenderer
Definition: capi.h:82
TESS_API BOOL TESS_CALL TessResultIteratorWordIsNumeric(const TessResultIterator *handle)
Definition: capi.cpp:776
TESS_API void TESS_CALL TessPageIteratorOrientation(TessPageIterator *handle, TessOrientation *orientation, TessWritingDirection *writing_direction, TessTextlineOrder *textline_order, float *deskew_angle)
Definition: capi.cpp:685
TESS_API TessResultIterator *TESS_CALL TessBaseAPIGetIterator(TessBaseAPI *handle)
Definition: capi.cpp:460
TESS_API int TESS_CALL TessBaseAPIMeanTextConf(TessBaseAPI *handle)
Definition: capi.cpp:490
struct TessPageIterator TessPageIterator
Definition: capi.h:84
TESS_API TessResultRenderer *TESS_CALL TessHOcrRendererCreate2(const char *outputbase, BOOL font_info)
Definition: capi.cpp:62
TESS_API TessPageSegMode TESS_CALL TessBaseAPIGetPageSegMode(const TessBaseAPI *handle)
Definition: capi.cpp:325
TESS_API void TESS_CALL TessBaseAPIClearAdaptiveClassifier(TessBaseAPI *handle)
Definition: capi.cpp:337
TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsDropcap(const TessResultIterator *handle)
Definition: capi.cpp:791
TESS_API char **TESS_CALL TessBaseAPIGetAvailableLanguagesAsVector(const TessBaseAPI *handle)
Definition: capi.cpp:289
TESS_API BOOL TESS_CALL TessResultIteratorNext(TessResultIterator *handle, TessPageIteratorLevel level)
Definition: capi.cpp:729
TESS_API void TESS_CALL TessResultIteratorDelete(TessResultIterator *handle)
Definition: capi.cpp:704
TESS_API const char *TESS_CALL TessBaseAPIGetStringVariable(const TessBaseAPI *handle, const char *name)
Definition: capi.cpp:212
TESS_API struct Boxa *TESS_CALL TessBaseAPIGetTextlines(TessBaseAPI *handle, struct Pixa **pixa, int **blockids)
Definition: capi.cpp:378
TESS_API int TESS_CALL TessBaseAPIRecognizeForChopTest(TessBaseAPI *handle, ETEXT_DESC *monitor)
Definition: capi.cpp:437