19 #ifndef TESSERACT_API_BASEAPI_H_
20 #define TESSERACT_API_BASEAPI_H_
63 using FileReader = bool (*)(
const char *filename, std::vector<char> *data);
68 int,
const char *, int);
89 static const char *Version();
98 static size_t getOpenCLDevice(
void **device);
104 void SetInputName(
const char *name);
112 const char *GetInputName();
114 void SetInputImage(Pix *pix);
115 Pix *GetInputImage();
116 int GetSourceYResolution();
117 const char *GetDatapath();
120 void SetOutputName(
const char *name);
135 bool SetVariable(
const char *name,
const char *value);
136 bool SetDebugVariable(
const char *name,
const char *value);
142 bool GetIntVariable(
const char *name,
int *value)
const;
143 bool GetBoolVariable(
const char *name,
bool *value)
const;
144 bool GetDoubleVariable(
const char *name,
double *value)
const;
150 const char *GetStringVariable(
const char *name)
const;
152 #ifndef DISABLED_LEGACY_ENGINE
157 void PrintFontsTable(FILE *fp)
const;
164 void PrintVariables(FILE *fp)
const;
169 bool GetVariableAsString(
const char *name, std::string *val)
const;
208 int Init(
const char *datapath,
const char *language,
OcrEngineMode mode,
209 char **configs,
int configs_size,
210 const std::vector<std::string> *vars_vec,
211 const std::vector<std::string> *vars_values,
212 bool set_only_non_debug_params);
214 return Init(datapath, language, oem,
nullptr, 0,
nullptr,
nullptr,
false);
216 int Init(
const char *datapath,
const char *language) {
217 return Init(datapath, language,
OEM_DEFAULT,
nullptr, 0,
nullptr,
nullptr,
222 int Init(
const char *data,
int data_size,
const char *language,
224 const std::vector<std::string> *vars_vec,
225 const std::vector<std::string> *vars_values,
226 bool set_only_non_debug_params,
FileReader reader);
236 const char *GetInitLanguagesAsString()
const;
243 void GetLoadedLanguagesAsVector(std::vector<std::string> *langs)
const;
248 void GetAvailableLanguagesAsVector(std::vector<std::string> *langs)
const;
254 void InitForAnalysePage();
262 void ReadConfigFile(
const char *filename);
264 void ReadDebugConfigFile(
const char *filename);
293 char *TesseractRect(
const unsigned char *imagedata,
int bytes_per_pixel,
294 int bytes_per_line,
int left,
int top,
int width,
301 void ClearAdaptiveClassifier();
318 void SetImage(
const unsigned char *imagedata,
int width,
int height,
319 int bytes_per_pixel,
int bytes_per_line);
329 void SetImage(Pix *pix);
335 void SetSourceResolution(
int ppi);
342 void SetRectangle(
int left,
int top,
int width,
int height);
349 Pix *GetThresholdedImage();
356 Boxa *GetRegions(Pixa **pixa);
369 Boxa *GetTextlines(
bool raw_image,
int raw_padding, Pixa **pixa,
370 int **blockids,
int **paraids);
375 return GetTextlines(
false, 0, pixa, blockids,
nullptr);
386 Boxa *GetStrips(Pixa **pixa,
int **blockids);
393 Boxa *GetWords(Pixa **pixa);
403 Boxa *GetConnectedComponents(Pixa **cc);
418 bool raw_image,
int raw_padding, Pixa **pixa,
419 int **blockids,
int **paraids);
422 Pixa **pixa,
int **blockids) {
423 return GetComponentImages(level, text_only,
false, 0, pixa, blockids,
433 int GetThresholdedImageScaleFactor()
const;
488 bool ProcessPages(
const char *filename,
const char *retry_config,
491 bool ProcessPagesInternal(
const char *filename,
const char *retry_config,
503 bool ProcessPage(Pix *pix,
int page_index,
const char *filename,
504 const char *retry_config,
int timeout_millisec,
542 char *GetHOCRText(
ETEXT_DESC *monitor,
int page_number);
550 char *GetHOCRText(
int page_number);
556 char *GetAltoText(
ETEXT_DESC *monitor,
int page_number);
562 char *GetAltoText(
int page_number);
569 char *GetTSVText(
int page_number);
577 char *GetLSTMBoxText(
int page_number);
586 char *GetBoxText(
int page_number);
594 char *GetWordStrBoxText(
int page_number);
612 bool DetectOrientationScript(
int *orient_deg,
float *orient_conf,
613 const char **script_name,
float *script_conf);
620 char *GetOsdText(
int page_number);
630 int *AllWordConfidences();
632 #ifndef DISABLED_LEGACY_ENGINE
643 bool AdaptToWordStr(
PageSegMode mode,
const char *wordstr);
669 static void ClearPersistentCache();
677 int IsValidWord(
const char *word)
const;
679 bool IsValidCharacter(
const char *utf8_character)
const;
681 bool GetTextDirection(
int *out_offset,
float *out_slope);
701 void GetBlockTextOrientations(
int **block_orientation,
702 bool **vertical_writing);
705 const char *GetUnichar(
int unichar_id)
const;
708 const Dawg *GetDawg(
int i)
const;
711 int NumDawgs()
const;
718 return last_oem_requested_;
721 void set_min_orientation_margin(
double margin);
727 bool InternalSetImage();
733 virtual bool Threshold(Pix **pix);
757 int TextLength(
int *blob_count)
const;
797 bool ProcessPagesFileList(FILE *fp, std::string *buf,
798 const char *retry_config,
int timeout_millisec,
800 int tessedit_page_number);
802 bool ProcessPagesMultipageTiff(
const unsigned char *data,
size_t size,
803 const char *filename,
const char *retry_config,
804 int timeout_millisec,
806 int tessedit_page_number);
struct TessBaseAPI TessBaseAPI
int(Dict::*)(void *, const UNICHARSET &, UNICHAR_ID, bool) const DictFunc
double(Dict::*)(const char *, const char *, int, const char *, int) ProbabilityInContextFunc
std::string HOcrEscape(const char *text)
bool(*)(const char *filename, std::vector< char > *data) FileReader
void DetectParagraphs(int debug_level, std::vector< RowInfo > *row_infos, std::vector< PARA * > *row_owners, PARA_LIST *paragraphs, std::vector< ParagraphModel * > *models)
EquationDetect * equ_detect_
The equation detector.
std::string input_file_
Name used by training code.
const PAGE_RES * GetPageRes() const
PAGE_RES * page_res_
The page-level data.
TessBaseAPI(TessBaseAPI const &)=delete
Tesseract * tesseract_
The underlying data object.
Boxa * GetTextlines(Pixa **pixa, int **blockids)
std::string language_
Last initialized language.
std::string datapath_
Current location of tessdata.
int Init(const char *datapath, const char *language, OcrEngineMode oem)
std::vector< ParagraphModel * > * paragraph_models_
bool recognition_done_
page_res_ contains recognition data.
FileReader reader_
Reads files from any filesystem.
int Init(const char *datapath, const char *language)
OcrEngineMode oem() const
ImageThresholder * thresholder_
Image thresholding module.
std::string output_file_
Name used by debug code.
Tesseract * tesseract() const
BLOCK_LIST * block_list_
The page layout.
Boxa * GetComponentImages(const PageIteratorLevel level, const bool text_only, Pixa **pixa, int **blockids)
Tesseract * osd_tesseract_
For orientation & script detection.
TessBaseAPI & operator=(TessBaseAPI const &)=delete
OcrEngineMode last_oem_requested_
Last ocr language mode requested.