#include <baseapi.h>
Public Member Functions | |
TessBaseAPI () | |
virtual | ~TessBaseAPI () |
void | SetInputName (const char *name) |
void | SetOutputName (const char *name) |
bool | SetVariable (const char *variable, const char *value) |
int | Init (const char *datapath, const char *language, char **configs, int configs_size, bool configs_global_only) |
int | Init (const char *datapath, const char *language) |
int | InitLangMod (const char *datapath, const char *language) |
int | InitWithoutLangModel (const char *datapath, const char *language) |
void | ReadConfigFile (const char *filename, bool global_only) |
void | SetPageSegMode (PageSegMode mode) |
PageSegMode | GetPageSegMode () const |
void | SetAccuracyVSpeed (AccuracyVSpeed mode) |
char * | TesseractRect (const unsigned char *imagedata, int bytes_per_pixel, int bytes_per_line, int left, int top, int width, int height) |
void | ClearAdaptiveClassifier () |
void | SetImage (const unsigned char *imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line) |
void | SetImage (const Pix *pix) |
void | SetRectangle (int left, int top, int width, int height) |
void | SetThresholder (ImageThresholder *thresholder) |
Pix * | GetThresholdedImage () |
Boxa * | GetRegions (Pixa **pixa) |
Boxa * | GetTextlines (Pixa **pixa, int **blockids) |
Boxa * | GetWords (Pixa **pixa) |
void | DumpPGM (const char *filename) |
int | Recognize (ETEXT_STRUCT *monitor) |
int | RecognizeForChopTest (struct ETEXT_STRUCT *monitor) |
char * | GetUTF8Text () |
char * | GetHOCRText (int page_id) |
char * | GetBoxText (int page_number) |
char * | GetUNLVText () |
int | MeanTextConf () |
int * | AllWordConfidences () |
void | Clear () |
void | End () |
int | IsValidWord (const char *word) |
bool | GetTextDirection (int *out_offset, float *out_slope) |
void | SetDictFunc (DictFunc f) |
bool | DetectOS (OSResults *) |
void | GetFeatures (INT_FEATURE_ARRAY int_features, int *num_features) |
const Dawg * | GetDawg (int i) const |
int | NumDawgs () const |
const char * | GetLastInitLanguage () const |
Protected Member Functions | |
bool | InternalSetImage () |
virtual void | Threshold (Pix **pix) |
int | FindLines () |
void | ClearResults () |
int | TextLength (int *blob_count) |
BLOCK_LIST * | FindLinesCreateBlockList () |
void | AdaptToCharacter (const char *unichar_repr, int length, float baseline, float xheight, float descender, float ascender) |
PAGE_RES * | RecognitionPass1 (BLOCK_LIST *block_list) |
PAGE_RES * | RecognitionPass2 (BLOCK_LIST *block_list, PAGE_RES *pass1_result) |
int | Cube () |
int | RunCubeOnLines () |
int | CubePostProcessWords () |
CubeLineObject ** | CreateLineObjects (Pixa *pixa_lines) |
TBOX * | CreatePhraseBoxes (Boxa *boxa_lines, CubeLineObject **line_objs, int *phrase_cnt) |
bool | RecognizePhrases (int line_cnt, int phrase_cnt, CubeLineObject **line_objs, TBOX *phrase_boxes) |
bool | RecognizePhrase (CubeObject *phrase, PAGE_RES_IT *result) |
bool | CreateCubeObjects () |
Static Protected Member Functions | |
static void | DeleteBlockList (BLOCK_LIST *block_list) |
static int | TesseractExtractResult (char **text, int **lengths, float **costs, int **x0, int **y0, int **x1, int **y1, PAGE_RES *page_res) |
Protected Attributes | |
Tesseract * | tesseract_ |
The underlying data object. | |
ImageThresholder * | thresholder_ |
Image thresholding module. | |
bool | threshold_done_ |
Image has been passed to page_image. | |
BLOCK_LIST * | block_list_ |
The page layout. | |
PAGE_RES * | page_res_ |
The page-level data. | |
STRING * | input_file_ |
Name used by training code. | |
STRING * | output_file_ |
Name used by debug code. | |
STRING * | datapath_ |
Current location of tessdata. | |
STRING * | language_ |
Last initialized language. | |
int | rect_left_ |
int | rect_top_ |
int | rect_width_ |
int | rect_height_ |
int | image_width_ |
int | image_height_ |
Base class for all tesseract APIs. Specific classes can add ability to work on different inputs or produce different outputs. This class is mostly an interface layer on top of the Tesseract instance class to hide the data types so that users of this class don't have to include any other Tesseract headers.
tesseract::TessBaseAPI::TessBaseAPI | ( | ) |
tesseract::TessBaseAPI::~TessBaseAPI | ( | ) | [virtual] |
void tesseract::TessBaseAPI::ClearAdaptiveClassifier | ( | ) |
Call between pages or documents etc to free up memory and forget adaptive data.
void tesseract::TessBaseAPI::ClearResults | ( | ) | [protected] |
Delete the pageres and block list ready for a new page.
int tesseract::TessBaseAPI::FindLines | ( | ) | [protected] |
Find lines from the image making the BLOCK_LIST.
PageSegMode tesseract::TessBaseAPI::GetPageSegMode | ( | ) | const |
Return the current page segmentation mode.
int tesseract::TessBaseAPI::Init | ( | const char * | datapath, | |
const char * | language | |||
) | [inline] |
int tesseract::TessBaseAPI::Init | ( | const char * | datapath, | |
const char * | language, | |||
char ** | configs, | |||
int | configs_size, | |||
bool | configs_global_only | |||
) |
Eventually instances will be thread-safe and totally independent, but for now, they all point to the same underlying engine, and are NOT RE-ENTRANT OR THREAD-SAFE. For now: it is safe to Init multiple TessBaseAPIs in the same language, use them sequentially, and End or delete them all, but once one is Ended, you can't do anything other than End the others. After End, it is safe to Init again on the same one.
Start tesseract. Returns zero on success and -1 on failure. NOTE that the only members that may be called before Init are those listed above here in the class definition.
The datapath must be the name of the data directory (no ending /) or some other file in which the data directory resides (for instance argv[0].) The language is (usually) an ISO 639-3 string or NULL will default to eng. It is entirely safe (and eventually will be efficient too) to call Init multiple times on the same instance to change language, or just to reset the classifier. WARNING: On changing languages, all Variables are reset back to their default values. If you have a rare need to set a Variable that controls initialization for a second call to Init you should explicitly call End() and then use SetVariable before Init. This is only a very rare use case, since there are very few uses that require any variables to be set before Init.
int tesseract::TessBaseAPI::InitLangMod | ( | const char * | datapath, | |
const char * | language | |||
) |
Init only the lang model component of Tesseract. The only functions that work after this init are SetVariable and IsValidWord. WARNING: temporary! This function will be removed from here and placed in a separate API at some future time.
int tesseract::TessBaseAPI::InitWithoutLangModel | ( | const char * | datapath, | |
const char * | language | |||
) |
Init everything except the language model. Used to allow initialization for the specified language without any available dawg models.
bool tesseract::TessBaseAPI::InternalSetImage | ( | ) | [protected] |
Common code for setting the image. Returns true if Init has been called.
void tesseract::TessBaseAPI::ReadConfigFile | ( | const char * | filename, | |
bool | global_only | |||
) |
Read a "config" file containing a set of variable, value pairs. Searches the standard places: tessdata/configs, tessdata/tessconfigs and also accepts a relative or absolute path name.
void tesseract::TessBaseAPI::SetAccuracyVSpeed | ( | AccuracyVSpeed | mode | ) |
Set the hint for trading accuracy against speed. Default is AVS_FASTEST, which is the old behaviour. Note that this is only a hint. Depending on the language and/or build configuration, speed and accuracy may not be tradeable. Also note that despite being an enum, any value in the range AVS_FASTEST to AVS_MOST_ACCURATE can be provided, and may or may not have an effect, depending on the implementation. The mode is stored as an INT_VARIABLE so it can also be modified by ReadConfigFile or SetVariable("tessedit_accuracyvspeed", mode as string).
void tesseract::TessBaseAPI::SetInputName | ( | const char * | name | ) |
Set the name of the input file. Needed only for training and reading a UNLV zone file.
void tesseract::TessBaseAPI::SetOutputName | ( | const char * | name | ) |
Set the name of the bonus output files. Needed only for debugging.
void tesseract::TessBaseAPI::SetPageSegMode | ( | PageSegMode | mode | ) |
Set the current page segmentation mode. Defaults to PSM_SINGLE_BLOCK. The mode is stored as an INT_VARIABLE so it can also be modified by ReadConfigFile or SetVariable("tessedit_pageseg_mode", mode as string).
bool tesseract::TessBaseAPI::SetVariable | ( | const char * | variable, | |
const char * | value | |||
) |
Set the value of an internal "variable" (of either old or new types). Supply the name of the variable and the value as a string, just as you would in a config file. Returns false if the name lookup failed. Eg SetVariable("tessedit_char_blacklist", "xyz"); to ignore x, y and z. Or SetVariable("bln_numericmode", "1"); to set numeric-only mode. SetVariable may be used before Init, but settings will revert to defaults on End().
char * tesseract::TessBaseAPI::TesseractRect | ( | const unsigned char * | imagedata, | |
int | bytes_per_pixel, | |||
int | bytes_per_line, | |||
int | left, | |||
int | top, | |||
int | width, | |||
int | height | |||
) |
Recognize a rectangle from an image and return the result as a string. May be called many times for a single Init. Currently has no error checking. Greyscale of 8 and color of 24 or 32 bits per pixel may be given. Palette color images will not work properly and must be converted to 24 bit. Binary images of 1 bit per pixel may also be given but they must be byte packed with the MSB of the first byte being the first pixel, and a 1 represents WHITE. For binary images set bytes_per_pixel=0. The recognized text is returned as a char* which is coded as UTF8 and must be freed with the delete [] operator.
Note that TesseractRect is the simplified convenience interface. For advanced uses, use SetImage, (optionally) SetRectangle, Recognize, and one or more of the Get*Text functions below.
int tesseract::TessBaseAPI::TextLength | ( | int * | blob_count | ) | [protected] |
Return the length of the output text string, as UTF8, assuming one newline per line and one per block, with a terminator, and assuming a single character reject marker for each rejected character. Also return the number of recognized blobs in blob_count.
void tesseract::TessBaseAPI::Threshold | ( | Pix ** | pix | ) | [protected, virtual] |
Run the thresholder to make the thresholded image. If pix is not NULL, the source is thresholded to pix instead of the internal IMAGE.
BLOCK_LIST* tesseract::TessBaseAPI::block_list_ [protected] |
The page layout.
STRING* tesseract::TessBaseAPI::datapath_ [protected] |
Current location of tessdata.
STRING* tesseract::TessBaseAPI::input_file_ [protected] |
Name used by training code.
STRING* tesseract::TessBaseAPI::language_ [protected] |
Last initialized language.
STRING* tesseract::TessBaseAPI::output_file_ [protected] |
Name used by debug code.
PAGE_RES* tesseract::TessBaseAPI::page_res_ [protected] |
The page-level data.
Tesseract* tesseract::TessBaseAPI::tesseract_ [protected] |
The underlying data object.
bool tesseract::TessBaseAPI::threshold_done_ [protected] |
Image has been passed to page_image.
ImageThresholder* tesseract::TessBaseAPI::thresholder_ [protected] |
Image thresholding module.