17#ifndef TESSERACT_API_BASEAPI_H_
18#define TESSERACT_API_BASEAPI_H_
21# include "config_auto.h"
30#include <tesseract/version.h>
61using FileReader = bool (*)(
const char *filename, std::vector<char> *data);
66 int,
const char *, int);
87 static const char *Version();
96 static size_t getOpenCLDevice(
void **device);
102 void SetInputName(
const char *name);
110 const char *GetInputName();
112 void SetInputImage(Pix *pix);
113 Pix *GetInputImage();
114 int GetSourceYResolution();
115 const char *GetDatapath();
118 void SetOutputName(
const char *name);
133 bool SetVariable(
const char *name,
const char *
value);
134 bool SetDebugVariable(
const char *name,
const char *
value);
140 bool GetIntVariable(
const char *name,
int *
value)
const;
141 bool GetBoolVariable(
const char *name,
bool *
value)
const;
142 bool GetDoubleVariable(
const char *name,
double *
value)
const;
148 const char *GetStringVariable(
const char *name)
const;
150#ifndef DISABLED_LEGACY_ENGINE
155 void PrintFontsTable(FILE *fp)
const;
162 void PrintVariables(FILE *fp)
const;
167 bool GetVariableAsString(
const char *name, std::string *val)
const;
206 int Init(
const char *datapath,
const char *language,
OcrEngineMode mode,
207 char **configs,
int configs_size,
208 const std::vector<std::string> *vars_vec,
209 const std::vector<std::string> *vars_values,
210 bool set_only_non_debug_params);
212 return Init(datapath, language, oem,
nullptr, 0,
nullptr,
nullptr,
false);
214 int Init(
const char *datapath,
const char *language) {
215 return Init(datapath, language,
OEM_DEFAULT,
nullptr, 0,
nullptr,
nullptr,
220 int Init(
const char *data,
int data_size,
const char *language,
222 const std::vector<std::string> *vars_vec,
223 const std::vector<std::string> *vars_values,
224 bool set_only_non_debug_params,
FileReader reader);
234 const char *GetInitLanguagesAsString()
const;
241 void GetLoadedLanguagesAsVector(std::vector<std::string> *langs)
const;
246 void GetAvailableLanguagesAsVector(std::vector<std::string> *langs)
const;
252 void InitForAnalysePage();
260 void ReadConfigFile(
const char *filename);
262 void ReadDebugConfigFile(
const char *filename);
291 char *TesseractRect(
const unsigned char *imagedata,
int bytes_per_pixel,
292 int bytes_per_line,
int left,
int top,
int width,
299 void ClearAdaptiveClassifier();
316 void SetImage(
const unsigned char *imagedata,
int width,
int height,
317 int bytes_per_pixel,
int bytes_per_line);
327 void SetImage(Pix *pix);
333 void SetSourceResolution(
int ppi);
340 void SetRectangle(
int left,
int top,
int width,
int height);
347 Pix *GetThresholdedImage();
354 Boxa *GetRegions(Pixa **pixa);
367 Boxa *GetTextlines(
bool raw_image,
int raw_padding, Pixa **pixa,
368 int **blockids,
int **paraids);
373 return GetTextlines(
false, 0, pixa, blockids,
nullptr);
384 Boxa *GetStrips(Pixa **pixa,
int **blockids);
391 Boxa *GetWords(Pixa **pixa);
401 Boxa *GetConnectedComponents(Pixa **cc);
416 bool raw_image,
int raw_padding, Pixa **pixa,
417 int **blockids,
int **paraids);
420 Pixa **pixa,
int **blockids) {
421 return GetComponentImages(level, text_only,
false, 0, pixa, blockids,
431 int GetThresholdedImageScaleFactor()
const;
486 bool ProcessPages(
const char *filename,
const char *retry_config,
489 bool ProcessPagesInternal(
const char *filename,
const char *retry_config,
501 bool ProcessPage(Pix *pix,
int page_index,
const char *filename,
502 const char *retry_config,
int timeout_millisec,
540 char *GetHOCRText(
ETEXT_DESC *monitor,
int page_number);
548 char *GetHOCRText(
int page_number);
554 char *GetAltoText(
ETEXT_DESC *monitor,
int page_number);
560 char *GetAltoText(
int page_number);
567 char *GetTSVText(
int page_number);
575 char *GetLSTMBoxText(
int page_number);
584 char *GetBoxText(
int page_number);
592 char *GetWordStrBoxText(
int page_number);
610 bool DetectOrientationScript(
int *orient_deg,
float *orient_conf,
611 const char **script_name,
float *script_conf);
618 char *GetOsdText(
int page_number);
628 int *AllWordConfidences();
630#ifndef DISABLED_LEGACY_ENGINE
641 bool AdaptToWordStr(
PageSegMode mode,
const char *wordstr);
667 static void ClearPersistentCache();
675 int IsValidWord(
const char *word)
const;
677 bool IsValidCharacter(
const char *utf8_character)
const;
679 bool GetTextDirection(
int *out_offset,
float *out_slope);
699 void GetBlockTextOrientations(
int **block_orientation,
700 bool **vertical_writing);
703 const char *GetUnichar(
int unichar_id)
const;
706 const Dawg *GetDawg(
int i)
const;
709 int NumDawgs()
const;
716 return last_oem_requested_;
719 void set_min_orientation_margin(
double margin);
725 bool InternalSetImage();
731 virtual bool Threshold(Pix **pix);
755 int TextLength(
int *blob_count)
const;
795 bool ProcessPagesFileList(FILE *fp, std::string *buf,
796 const char *retry_config,
int timeout_millisec,
798 int tessedit_page_number);
800 bool ProcessPagesMultipageTiff(
const unsigned char *data,
size_t size,
801 const char *filename,
const char *retry_config,
802 int timeout_millisec,
804 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.
PAGE_RES * page_res_
The page-level data.
TessBaseAPI(TessBaseAPI const &)=delete
Tesseract * tesseract_
The underlying data object.
Boxa * GetTextlines(Pixa **pixa, int **blockids)
const PAGE_RES * GetPageRes() const
std::string language_
Last initialized language.
std::string datapath_
Current location of tessdata.
Boxa * GetComponentImages(const PageIteratorLevel level, const bool text_only, Pixa **pixa, int **blockids)
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
TessBaseAPI & operator=(TessBaseAPI const &)=delete
BLOCK_LIST * block_list_
The page layout.
Tesseract * osd_tesseract_
For orientation & script detection.
OcrEngineMode last_oem_requested_
Last ocr language mode requested.