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