Tesseract 3.01
tesseract::TessBaseAPI Class Reference

#include <baseapi.h>

List of all members.

Public Member Functions

 TessBaseAPI ()
virtual ~TessBaseAPI ()
void SetInputName (const char *name)
void SetOutputName (const char *name)
bool SetVariable (const char *name, const char *value)
bool GetIntVariable (const char *name, int *value) const
bool GetBoolVariable (const char *name, bool *value) const
bool GetDoubleVariable (const char *name, double *value) const
const char * GetStringVariable (const char *name) const
void PrintVariables (FILE *fp) const
bool GetVariableAsString (const char *name, STRING *val)
int Init (const char *datapath, const char *language, OcrEngineMode mode, char **configs, int configs_size, const GenericVector< STRING > *vars_vec, const GenericVector< STRING > *vars_values, bool set_only_init_params)
int Init (const char *datapath, const char *language, OcrEngineMode oem)
int Init (const char *datapath, const char *language)
int InitLangMod (const char *datapath, const char *language)
void InitForAnalysePage ()
void ReadConfigFile (const char *filename, bool init_only)
void SetPageSegMode (PageSegMode mode)
PageSegMode GetPageSegMode () const
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)
Boxa * GetConnectedComponents (Pixa **cc)
Boxa * GetComponentImages (PageIteratorLevel level, Pixa **pixa, int **blockids)
void DumpPGM (const char *filename)
PageIteratorAnalyseLayout ()
int Recognize (ETEXT_DESC *monitor)
int RecognizeForChopTest (ETEXT_DESC *monitor)
bool ProcessPages (const char *filename, const char *retry_config, int timeout_millisec, STRING *text_out)
bool ProcessPage (Pix *pix, int page_index, const char *filename, const char *retry_config, int timeout_millisec, STRING *text_out)
ResultIteratorGetIterator ()
char * GetUTF8Text ()
char * GetHOCRText (int page_number)
char * GetBoxText (int page_number)
char * GetUNLVText ()
int MeanTextConf ()
int * AllWordConfidences ()
bool AdaptToWordStr (PageSegMode mode, const char *wordstr)
void Clear ()
void End ()
int IsValidWord (const char *word)
bool GetTextDirection (int *out_offset, float *out_slope)
void SetDictFunc (DictFunc f)
void SetProbabilityInContextFunc (ProbabilityInContextFunc f)
bool DetectOS (OSResults *)
void GetFeaturesForBlob (TBLOB *blob, const DENORM &denorm, INT_FEATURE_ARRAY int_features, int *num_features, int *FeatureOutlineIndex)
void RunAdaptiveClassifier (TBLOB *blob, const DENORM &denorm, int num_max_matches, int *unichar_ids, float *ratings, int *num_matches_returned)
const char * GetUnichar (int unichar_id)
const DawgGetDawg (int i) const
int NumDawgs () const
const char * GetLastInitLanguage () const
Tesseract *const tesseract () const
void InitTruthCallback (TruthCallback *cb)
CubeRecoContextGetCubeRecoContext () const
void set_min_orientation_margin (double margin)
void GetBlockTextOrientations (int **block_orientation, bool **vertical_writing)
BLOCK_LIST * FindLinesCreateBlockList ()

Static Public Member Functions

static const char * Version ()
static ROWFindRowForBox (BLOCK_LIST *blocks, int left, int top, int right, int bottom)
static ROWMakeTessOCRRow (float baseline, float xheight, float descender, float ascender)
static TBLOBMakeTBLOB (Pix *pix)
static void NormalizeTBLOB (TBLOB *tblob, ROW *row, bool numeric_mode, DENORM *denorm)
static void DeleteBlockList (BLOCK_LIST *block_list)

Protected Member Functions

bool InternalSetImage ()
virtual void Threshold (Pix **pix)
int FindLines ()
void ClearResults ()
int TextLength (int *blob_count)
void AdaptToCharacter (const char *unichar_repr, int length, float baseline, float xheight, float descender, float ascender)
PAGE_RESRecognitionPass1 (BLOCK_LIST *block_list)
PAGE_RESRecognitionPass2 (BLOCK_LIST *block_list, PAGE_RES *pass1_result)
const PAGE_RESGetPageRes () const

Static Protected Member Functions

static int TesseractExtractResult (char **text, int **lengths, float **costs, int **x0, int **y0, int **x1, int **y1, PAGE_RES *page_res)

Protected Attributes

Tesseracttesseract_
 The underlying data object.
Tesseractosd_tesseract_
 For orientation & script detection.
ImageThresholderthresholder_
 Image thresholding module.
BLOCK_LIST * block_list_
 The page layout.
PAGE_RESpage_res_
 The page-level data.
STRINGinput_file_
 Name used by training code.
STRINGoutput_file_
 Name used by debug code.
STRINGdatapath_
 Current location of tessdata.
STRINGlanguage_
 Last initialized language.
OcrEngineMode last_oem_requested_
 Last ocr language mode requested.
bool recognition_done_
 page_res_ contains recognition data.
TruthCallbacktruth_cb_
int rect_left_
int rect_top_
int rect_width_
int rect_height_
int image_width_
int image_height_

Detailed Description

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.


Constructor & Destructor Documentation

tesseract::TessBaseAPI::TessBaseAPI ( )
tesseract::TessBaseAPI::~TessBaseAPI ( ) [virtual]

Member Function Documentation

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.

Returns:
0 on success.
bool tesseract::TessBaseAPI::GetBoolVariable ( const char *  name,
bool *  value 
) const
bool tesseract::TessBaseAPI::GetDoubleVariable ( const char *  name,
double *  value 
) const
bool tesseract::TessBaseAPI::GetIntVariable ( const char *  name,
int *  value 
) const
PageSegMode tesseract::TessBaseAPI::GetPageSegMode ( ) const

Return the current page segmentation mode.

const char * tesseract::TessBaseAPI::GetStringVariable ( const char *  name) const
bool tesseract::TessBaseAPI::GetVariableAsString ( const char *  name,
STRING val 
)
int tesseract::TessBaseAPI::Init ( const char *  datapath,
const char *  language,
OcrEngineMode  mode,
char **  configs,
int  configs_size,
const GenericVector< STRING > *  vars_vec,
const GenericVector< STRING > *  vars_values,
bool  set_only_init_params 
)

Instances are now mostly thread-safe and totally independent, but some global parameters remain. Basically it is safe to use multiple TessBaseAPIs in different threads in parallel, UNLESS: you use SetVariable on some of the Params in classify and textord. If you do, then the effect will be to change it for all your instances.

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 parent directory of tessdata and must end in / . Any name after the last / will be stripped. 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 Tesseract parameters are reset back to their default values. (Which may vary between languages.) 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 parameters to be set before Init.

int tesseract::TessBaseAPI::Init ( const char *  datapath,
const char *  language,
OcrEngineMode  oem 
) [inline]
int tesseract::TessBaseAPI::Init ( const char *  datapath,
const char *  language 
) [inline]
void tesseract::TessBaseAPI::InitForAnalysePage ( )
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.

bool tesseract::TessBaseAPI::InternalSetImage ( ) [protected]

Common code for setting the image. Returns true if Init has been called.

void tesseract::TessBaseAPI::PrintVariables ( FILE *  fp) const
void tesseract::TessBaseAPI::ReadConfigFile ( const char *  filename,
bool  init_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. If init_only is true, only sets the parameters marked with a special INIT flag, which are typically of functional/algorithmic effect rather than debug effect. Used to separate debug settings from working settings.

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 IntParam so it can also be modified by ReadConfigFile or SetVariable("tessedit_pageseg_mode", mode as string).

bool tesseract::TessBaseAPI::SetVariable ( const char *  name,
const char *  value 
)

Set the value of an internal "parameter." Supply the name of the parameter 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("classify_bln_numeric_mode", "1"); to set numeric-only mode. SetVariable may be used before Init, but settings will revert to defaults on End(). TODO(rays) Add a command-line option to dump the parameters to stdout and add a pointer to it in the FAQ

Note: Must be called after Init(). Only works for non-init variables (init variables should be passed to Init()).

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.

const char * tesseract::TessBaseAPI::Version ( ) [static]

Returns the version identifier as a static string. Do not delete.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines