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