|
tesseract 3.04.01
|
00001 #ifndef TESSERACT_API_CAPI_H__ 00002 #define TESSERACT_API_CAPI_H__ 00003 00004 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00005 # include "baseapi.h" 00006 # include "pageiterator.h" 00007 # include "resultiterator.h" 00008 # include "renderer.h" 00009 #else 00010 # include "platform.h" 00011 # include <stdio.h> 00012 #endif 00013 00014 #ifdef __cplusplus 00015 extern "C" { 00016 #endif 00017 00018 #ifndef TESS_CALL 00019 # if defined(WIN32) 00020 # define TESS_CALL __cdecl 00021 # else 00022 # define TESS_CALL 00023 # endif 00024 #endif 00025 00026 #ifndef BOOL 00027 # define BOOL int 00028 # define TRUE 1 00029 # define FALSE 0 00030 #endif 00031 00032 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00033 typedef tesseract::TessResultRenderer TessResultRenderer; 00034 typedef tesseract::TessTextRenderer TessTextRenderer; 00035 typedef tesseract::TessHOcrRenderer TessHOcrRenderer; 00036 typedef tesseract::TessPDFRenderer TessPDFRenderer; 00037 typedef tesseract::TessUnlvRenderer TessUnlvRenderer; 00038 typedef tesseract::TessBoxTextRenderer TessBoxTextRenderer; 00039 typedef tesseract::TessBaseAPI TessBaseAPI; 00040 typedef tesseract::PageIterator TessPageIterator; 00041 typedef tesseract::ResultIterator TessResultIterator; 00042 typedef tesseract::MutableIterator TessMutableIterator; 00043 typedef tesseract::ChoiceIterator TessChoiceIterator; 00044 typedef tesseract::OcrEngineMode TessOcrEngineMode; 00045 typedef tesseract::PageSegMode TessPageSegMode; 00046 typedef tesseract::ImageThresholder TessImageThresholder; 00047 typedef tesseract::PageIteratorLevel TessPageIteratorLevel; 00048 typedef tesseract::DictFunc TessDictFunc; 00049 typedef tesseract::ProbabilityInContextFunc TessProbabilityInContextFunc; 00050 // typedef tesseract::ParamsModelClassifyFunc TessParamsModelClassifyFunc; 00051 typedef tesseract::FillLatticeFunc TessFillLatticeFunc; 00052 typedef tesseract::Dawg TessDawg; 00053 typedef tesseract::TruthCallback TessTruthCallback; 00054 #ifndef NO_CUBE_BUILD 00055 typedef tesseract::CubeRecoContext TessCubeRecoContext; 00056 #endif // NO_CUBE_BUILD 00057 typedef tesseract::Orientation TessOrientation; 00058 typedef tesseract::ParagraphJustification TessParagraphJustification; 00059 typedef tesseract::WritingDirection TessWritingDirection; 00060 typedef tesseract::TextlineOrder TessTextlineOrder; 00061 typedef PolyBlockType TessPolyBlockType; 00062 #else 00063 typedef struct TessResultRenderer TessResultRenderer; 00064 typedef struct TessTextRenderer TessTextRenderer; 00065 typedef struct TessHOcrRenderer TessHOcrRenderer; 00066 typedef struct TessPDFRenderer TessPDFRenderer; 00067 typedef struct TessUnlvRenderer TessUnlvRenderer; 00068 typedef struct TessBoxTextRenderer TessBoxTextRenderer; 00069 typedef struct TessBaseAPI TessBaseAPI; 00070 typedef struct TessPageIterator TessPageIterator; 00071 typedef struct TessResultIterator TessResultIterator; 00072 typedef struct TessMutableIterator TessMutableIterator; 00073 typedef struct TessChoiceIterator TessChoiceIterator; 00074 typedef enum TessOcrEngineMode { OEM_TESSERACT_ONLY, OEM_CUBE_ONLY, OEM_TESSERACT_CUBE_COMBINED, OEM_DEFAULT } TessOcrEngineMode; 00075 typedef enum TessPageSegMode { PSM_OSD_ONLY, PSM_AUTO_OSD, PSM_AUTO_ONLY, PSM_AUTO, PSM_SINGLE_COLUMN, PSM_SINGLE_BLOCK_VERT_TEXT, 00076 PSM_SINGLE_BLOCK, PSM_SINGLE_LINE, PSM_SINGLE_WORD, PSM_CIRCLE_WORD, PSM_SINGLE_CHAR, PSM_SPARSE_TEXT, 00077 PSM_SPARSE_TEXT_OSD, PSM_COUNT } TessPageSegMode; 00078 typedef enum TessPageIteratorLevel { RIL_BLOCK, RIL_PARA, RIL_TEXTLINE, RIL_WORD, RIL_SYMBOL} TessPageIteratorLevel; 00079 typedef enum TessPolyBlockType { PT_UNKNOWN, PT_FLOWING_TEXT, PT_HEADING_TEXT, PT_PULLOUT_TEXT, PT_EQUATION, PT_INLINE_EQUATION, 00080 PT_TABLE, PT_VERTICAL_TEXT, PT_CAPTION_TEXT, PT_FLOWING_IMAGE, PT_HEADING_IMAGE, 00081 PT_PULLOUT_IMAGE, PT_HORZ_LINE, PT_VERT_LINE, PT_NOISE, PT_COUNT } TessPolyBlockType; 00082 typedef enum TessOrientation { ORIENTATION_PAGE_UP, ORIENTATION_PAGE_RIGHT, ORIENTATION_PAGE_DOWN, ORIENTATION_PAGE_LEFT } TessOrientation; 00083 typedef enum TessParagraphJustification { JUSTIFICATION_UNKNOWN, JUSTIFICATION_LEFT, JUSTIFICATION_CENTER, JUSTIFICATION_RIGHT } TessParagraphJustification; 00084 typedef enum TessWritingDirection { WRITING_DIRECTION_LEFT_TO_RIGHT, WRITING_DIRECTION_RIGHT_TO_LEFT, WRITING_DIRECTION_TOP_TO_BOTTOM } TessWritingDirection; 00085 typedef enum TessTextlineOrder { TEXTLINE_ORDER_LEFT_TO_RIGHT, TEXTLINE_ORDER_RIGHT_TO_LEFT, TEXTLINE_ORDER_TOP_TO_BOTTOM } TessTextlineOrder; 00086 typedef struct ETEXT_DESC ETEXT_DESC; 00087 #endif 00088 00089 struct Pix; 00090 struct Boxa; 00091 struct Pixa; 00092 00093 /* General free functions */ 00094 00095 TESS_API const char* 00096 TESS_CALL TessVersion(); 00097 TESS_API void TESS_CALL TessDeleteText(char* text); 00098 TESS_API void TESS_CALL TessDeleteTextArray(char** arr); 00099 TESS_API void TESS_CALL TessDeleteIntArray(int* arr); 00100 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00101 TESS_API void TESS_CALL TessDeleteBlockList(BLOCK_LIST* block_list); 00102 #endif 00103 00104 /* Renderer API */ 00105 TESS_API TessResultRenderer* TESS_CALL TessTextRendererCreate(const char* outputbase); 00106 TESS_API TessResultRenderer* TESS_CALL TessHOcrRendererCreate(const char* outputbase); 00107 TESS_API TessResultRenderer* TESS_CALL TessHOcrRendererCreate2(const char* outputbase, BOOL font_info); 00108 TESS_API TessResultRenderer* TESS_CALL TessPDFRendererCreate(const char* outputbase, const char* datadir); 00109 TESS_API TessResultRenderer* TESS_CALL TessUnlvRendererCreate(const char* outputbase); 00110 TESS_API TessResultRenderer* TESS_CALL TessBoxTextRendererCreate(const char* outputbase); 00111 00112 TESS_API void TESS_CALL TessDeleteResultRenderer(TessResultRenderer* renderer); 00113 TESS_API void TESS_CALL TessResultRendererInsert(TessResultRenderer* renderer, TessResultRenderer* next); 00114 TESS_API TessResultRenderer* 00115 TESS_CALL TessResultRendererNext(TessResultRenderer* renderer); 00116 TESS_API BOOL TESS_CALL TessResultRendererBeginDocument(TessResultRenderer* renderer, const char* title); 00117 TESS_API BOOL TESS_CALL TessResultRendererAddImage(TessResultRenderer* renderer, TessBaseAPI* api); 00118 TESS_API BOOL TESS_CALL TessResultRendererEndDocument(TessResultRenderer* renderer); 00119 00120 TESS_API const char* TESS_CALL TessResultRendererExtention(TessResultRenderer* renderer); 00121 TESS_API const char* TESS_CALL TessResultRendererTitle(TessResultRenderer* renderer); 00122 TESS_API int TESS_CALL TessResultRendererImageNum(TessResultRenderer* renderer); 00123 00124 /* Base API */ 00125 00126 TESS_API TessBaseAPI* 00127 TESS_CALL TessBaseAPICreate(); 00128 TESS_API void TESS_CALL TessBaseAPIDelete(TessBaseAPI* handle); 00129 00130 TESS_API size_t TESS_CALL TessBaseAPIGetOpenCLDevice(TessBaseAPI* handle, void **device); 00131 00132 TESS_API void TESS_CALL TessBaseAPISetInputName( TessBaseAPI* handle, const char* name); 00133 TESS_API const char* TESS_CALL TessBaseAPIGetInputName(TessBaseAPI* handle); 00134 00135 TESS_API void TESS_CALL TessBaseAPISetInputImage(TessBaseAPI* handle, struct Pix* pix); 00136 TESS_API struct Pix* TESS_CALL TessBaseAPIGetInputImage(TessBaseAPI* handle); 00137 00138 TESS_API int TESS_CALL TessBaseAPIGetSourceYResolution(TessBaseAPI* handle); 00139 TESS_API const char* TESS_CALL TessBaseAPIGetDatapath(TessBaseAPI* handle); 00140 00141 TESS_API void TESS_CALL TessBaseAPISetOutputName(TessBaseAPI* handle, const char* name); 00142 00143 TESS_API BOOL TESS_CALL TessBaseAPISetVariable(TessBaseAPI* handle, const char* name, const char* value); 00144 TESS_API BOOL TESS_CALL TessBaseAPISetDebugVariable(TessBaseAPI* handle, const char* name, const char* value); 00145 00146 TESS_API BOOL TESS_CALL TessBaseAPIGetIntVariable( const TessBaseAPI* handle, const char* name, int* value); 00147 TESS_API BOOL TESS_CALL TessBaseAPIGetBoolVariable( const TessBaseAPI* handle, const char* name, BOOL* value); 00148 TESS_API BOOL TESS_CALL TessBaseAPIGetDoubleVariable(const TessBaseAPI* handle, const char* name, double* value); 00149 TESS_API const char* 00150 TESS_CALL TessBaseAPIGetStringVariable(const TessBaseAPI* handle, const char* name); 00151 00152 TESS_API void TESS_CALL TessBaseAPIPrintVariables( const TessBaseAPI* handle, FILE* fp); 00153 TESS_API BOOL TESS_CALL TessBaseAPIPrintVariablesToFile(const TessBaseAPI* handle, const char* filename); 00154 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00155 TESS_API BOOL TESS_CALL TessBaseAPIGetVariableAsString(TessBaseAPI* handle, const char* name, STRING* val); 00156 #endif 00157 00158 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00159 TESS_API int TESS_CALL TessBaseAPIInit(TessBaseAPI* handle, const char* datapath, const char* language, 00160 TessOcrEngineMode mode, char** configs, int configs_size, 00161 const STRING* vars_vec, size_t vars_vec_size, 00162 const STRING* vars_values, size_t vars_values_size, BOOL set_only_init_params); 00163 #endif 00164 TESS_API int TESS_CALL TessBaseAPIInit1(TessBaseAPI* handle, const char* datapath, const char* language, TessOcrEngineMode oem, 00165 char** configs, int configs_size); 00166 TESS_API int TESS_CALL TessBaseAPIInit2(TessBaseAPI* handle, const char* datapath, const char* language, TessOcrEngineMode oem); 00167 TESS_API int TESS_CALL TessBaseAPIInit3(TessBaseAPI* handle, const char* datapath, const char* language); 00168 00169 TESS_API int TESS_CALL TessBaseAPIInit4(TessBaseAPI* handle, const char* datapath, const char* language, TessOcrEngineMode mode, 00170 char** configs, int configs_size, 00171 char** vars_vec, char** vars_values, size_t vars_vec_size, 00172 BOOL set_only_non_debug_params); 00173 00174 TESS_API const char* 00175 TESS_CALL TessBaseAPIGetInitLanguagesAsString(const TessBaseAPI* handle); 00176 TESS_API char** 00177 TESS_CALL TessBaseAPIGetLoadedLanguagesAsVector(const TessBaseAPI* handle); 00178 TESS_API char** 00179 TESS_CALL TessBaseAPIGetAvailableLanguagesAsVector(const TessBaseAPI* handle); 00180 00181 TESS_API int TESS_CALL TessBaseAPIInitLangMod(TessBaseAPI* handle, const char* datapath, const char* language); 00182 TESS_API void TESS_CALL TessBaseAPIInitForAnalysePage(TessBaseAPI* handle); 00183 00184 TESS_API void TESS_CALL TessBaseAPIReadConfigFile(TessBaseAPI* handle, const char* filename); 00185 TESS_API void TESS_CALL TessBaseAPIReadDebugConfigFile(TessBaseAPI* handle, const char* filename); 00186 00187 TESS_API void TESS_CALL TessBaseAPISetPageSegMode(TessBaseAPI* handle, TessPageSegMode mode); 00188 TESS_API TessPageSegMode 00189 TESS_CALL TessBaseAPIGetPageSegMode(const TessBaseAPI* handle); 00190 00191 TESS_API char* TESS_CALL TessBaseAPIRect(TessBaseAPI* handle, const unsigned char* imagedata, 00192 int bytes_per_pixel, int bytes_per_line, 00193 int left, int top, int width, int height); 00194 00195 TESS_API void TESS_CALL TessBaseAPIClearAdaptiveClassifier(TessBaseAPI* handle); 00196 00197 TESS_API void TESS_CALL TessBaseAPISetImage(TessBaseAPI* handle, const unsigned char* imagedata, int width, int height, 00198 int bytes_per_pixel, int bytes_per_line); 00199 TESS_API void TESS_CALL TessBaseAPISetImage2(TessBaseAPI* handle, struct Pix* pix); 00200 00201 TESS_API void TESS_CALL TessBaseAPISetSourceResolution(TessBaseAPI* handle, int ppi); 00202 00203 TESS_API void TESS_CALL TessBaseAPISetRectangle(TessBaseAPI* handle, int left, int top, int width, int height); 00204 00205 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00206 TESS_API void TESS_CALL TessBaseAPISetThresholder(TessBaseAPI* handle, TessImageThresholder* thresholder); 00207 #endif 00208 00209 TESS_API struct Pix* 00210 TESS_CALL TessBaseAPIGetThresholdedImage( TessBaseAPI* handle); 00211 TESS_API struct Boxa* 00212 TESS_CALL TessBaseAPIGetRegions( TessBaseAPI* handle, struct Pixa** pixa); 00213 TESS_API struct Boxa* 00214 TESS_CALL TessBaseAPIGetTextlines( TessBaseAPI* handle, struct Pixa** pixa, int** blockids); 00215 TESS_API struct Boxa* 00216 TESS_CALL TessBaseAPIGetTextlines1( TessBaseAPI* handle, const BOOL raw_image, const int raw_padding, 00217 struct Pixa** pixa, int** blockids, int** paraids); 00218 TESS_API struct Boxa* 00219 TESS_CALL TessBaseAPIGetStrips( TessBaseAPI* handle, struct Pixa** pixa, int** blockids); 00220 TESS_API struct Boxa* 00221 TESS_CALL TessBaseAPIGetWords( TessBaseAPI* handle, struct Pixa** pixa); 00222 TESS_API struct Boxa* 00223 TESS_CALL TessBaseAPIGetConnectedComponents(TessBaseAPI* handle, struct Pixa** cc); 00224 TESS_API struct Boxa* 00225 TESS_CALL TessBaseAPIGetComponentImages( TessBaseAPI* handle, const TessPageIteratorLevel level, const BOOL text_only, 00226 struct Pixa** pixa, int** blockids); 00227 TESS_API struct Boxa* 00228 TESS_CALL TessBaseAPIGetComponentImages1( TessBaseAPI* handle, const TessPageIteratorLevel level, const BOOL text_only, 00229 const BOOL raw_image, const int raw_padding, 00230 struct Pixa** pixa, int** blockids, int** paraids); 00231 00232 TESS_API int TESS_CALL TessBaseAPIGetThresholdedImageScaleFactor(const TessBaseAPI* handle); 00233 00234 TESS_API void TESS_CALL TessBaseAPIDumpPGM(TessBaseAPI* handle, const char* filename); 00235 00236 TESS_API TessPageIterator* 00237 TESS_CALL TessBaseAPIAnalyseLayout(TessBaseAPI* handle); 00238 00239 TESS_API int TESS_CALL TessBaseAPIRecognize(TessBaseAPI* handle, ETEXT_DESC* monitor); 00240 TESS_API int TESS_CALL TessBaseAPIRecognizeForChopTest(TessBaseAPI* handle, ETEXT_DESC* monitor); 00241 TESS_API BOOL TESS_CALL TessBaseAPIProcessPages(TessBaseAPI* handle, const char* filename, const char* retry_config, 00242 int timeout_millisec, TessResultRenderer* renderer); 00243 TESS_API BOOL TESS_CALL TessBaseAPIProcessPage(TessBaseAPI* handle, struct Pix* pix, int page_index, const char* filename, 00244 const char* retry_config, int timeout_millisec, TessResultRenderer* renderer); 00245 00246 TESS_API TessResultIterator* 00247 TESS_CALL TessBaseAPIGetIterator(TessBaseAPI* handle); 00248 TESS_API TessMutableIterator* 00249 TESS_CALL TessBaseAPIGetMutableIterator(TessBaseAPI* handle); 00250 00251 TESS_API char* TESS_CALL TessBaseAPIGetUTF8Text(TessBaseAPI* handle); 00252 TESS_API char* TESS_CALL TessBaseAPIGetHOCRText(TessBaseAPI* handle, int page_number); 00253 TESS_API char* TESS_CALL TessBaseAPIGetBoxText(TessBaseAPI* handle, int page_number); 00254 TESS_API char* TESS_CALL TessBaseAPIGetUNLVText(TessBaseAPI* handle); 00255 TESS_API int TESS_CALL TessBaseAPIMeanTextConf(TessBaseAPI* handle); 00256 TESS_API int* TESS_CALL TessBaseAPIAllWordConfidences(TessBaseAPI* handle); 00257 TESS_API BOOL TESS_CALL TessBaseAPIAdaptToWordStr(TessBaseAPI* handle, TessPageSegMode mode, const char* wordstr); 00258 00259 TESS_API void TESS_CALL TessBaseAPIClear(TessBaseAPI* handle); 00260 TESS_API void TESS_CALL TessBaseAPIEnd(TessBaseAPI* handle); 00261 00262 TESS_API int TESS_CALL TessBaseAPIIsValidWord(TessBaseAPI* handle, const char* word); 00263 TESS_API BOOL TESS_CALL TessBaseAPIGetTextDirection(TessBaseAPI* handle, int* out_offset, float* out_slope); 00264 00265 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00266 TESS_API void TESS_CALL TessBaseAPISetDictFunc(TessBaseAPI* handle, TessDictFunc f); 00267 TESS_API void TESS_CALL TessBaseAPIClearPersistentCache(TessBaseAPI* handle); 00268 TESS_API void TESS_CALL TessBaseAPISetProbabilityInContextFunc(TessBaseAPI* handle, TessProbabilityInContextFunc f); 00269 00270 TESS_API void TESS_CALL TessBaseAPISetFillLatticeFunc(TessBaseAPI* handle, TessFillLatticeFunc f); 00271 TESS_API BOOL TESS_CALL TessBaseAPIDetectOS(TessBaseAPI* handle, OSResults* results); 00272 00273 TESS_API void TESS_CALL TessBaseAPIGetFeaturesForBlob(TessBaseAPI* handle, TBLOB* blob, INT_FEATURE_STRUCT* int_features, 00274 int* num_features, int* FeatureOutlineIndex); 00275 00276 TESS_API ROW* TESS_CALL TessFindRowForBox(BLOCK_LIST* blocks, int left, int top, int right, int bottom); 00277 TESS_API void TESS_CALL TessBaseAPIRunAdaptiveClassifier(TessBaseAPI* handle, TBLOB* blob, int num_max_matches, 00278 int* unichar_ids, float* ratings, int* num_matches_returned); 00279 #endif 00280 00281 TESS_API const char* 00282 TESS_CALL TessBaseAPIGetUnichar(TessBaseAPI* handle, int unichar_id); 00283 00284 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00285 TESS_API const TessDawg* 00286 TESS_CALL TessBaseAPIGetDawg(const TessBaseAPI* handle, int i); 00287 TESS_API int TESS_CALL TessBaseAPINumDawgs(const TessBaseAPI* handle); 00288 #endif 00289 00290 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00291 TESS_API ROW* TESS_CALL TessMakeTessOCRRow(float baseline, float xheight, float descender, float ascender); 00292 TESS_API TBLOB* 00293 TESS_CALL TessMakeTBLOB(Pix* pix); 00294 TESS_API void TESS_CALL TessNormalizeTBLOB(TBLOB* tblob, ROW* row, BOOL numeric_mode); 00295 00296 TESS_API TessOcrEngineMode 00297 TESS_CALL TessBaseAPIOem(const TessBaseAPI* handle); 00298 TESS_API void TESS_CALL TessBaseAPIInitTruthCallback(TessBaseAPI* handle, TessTruthCallback* cb); 00299 00300 #ifndef NO_CUBE_BUILD 00301 TESS_API TessCubeRecoContext* 00302 TESS_CALL TessBaseAPIGetCubeRecoContext(const TessBaseAPI* handle); 00303 #endif // NO_CUBE_BUILD 00304 #endif 00305 00306 TESS_API void TESS_CALL TessBaseAPISetMinOrientationMargin(TessBaseAPI* handle, double margin); 00307 #ifdef TESS_CAPI_INCLUDE_BASEAPI 00308 TESS_API void TESS_CALL TessBaseGetBlockTextOrientations(TessBaseAPI* handle, int** block_orientation, BOOL** vertical_writing); 00309 00310 TESS_API BLOCK_LIST* 00311 TESS_CALL TessBaseAPIFindLinesCreateBlockList(TessBaseAPI* handle); 00312 #endif 00313 00314 /* Page iterator */ 00315 00316 TESS_API void TESS_CALL TessPageIteratorDelete(TessPageIterator* handle); 00317 TESS_API TessPageIterator* 00318 TESS_CALL TessPageIteratorCopy(const TessPageIterator* handle); 00319 00320 TESS_API void TESS_CALL TessPageIteratorBegin(TessPageIterator* handle); 00321 TESS_API BOOL TESS_CALL TessPageIteratorNext(TessPageIterator* handle, TessPageIteratorLevel level); 00322 TESS_API BOOL TESS_CALL TessPageIteratorIsAtBeginningOf(const TessPageIterator* handle, TessPageIteratorLevel level); 00323 TESS_API BOOL TESS_CALL TessPageIteratorIsAtFinalElement(const TessPageIterator* handle, TessPageIteratorLevel level, 00324 TessPageIteratorLevel element); 00325 00326 TESS_API BOOL TESS_CALL TessPageIteratorBoundingBox(const TessPageIterator* handle, TessPageIteratorLevel level, 00327 int* left, int* top, int* right, int* bottom); 00328 TESS_API TessPolyBlockType 00329 TESS_CALL TessPageIteratorBlockType(const TessPageIterator* handle); 00330 00331 TESS_API struct Pix* 00332 TESS_CALL TessPageIteratorGetBinaryImage(const TessPageIterator* handle, TessPageIteratorLevel level); 00333 TESS_API struct Pix* 00334 TESS_CALL TessPageIteratorGetImage(const TessPageIterator* handle, TessPageIteratorLevel level, int padding, 00335 struct Pix* original_image, int* left, int* top); 00336 00337 TESS_API BOOL TESS_CALL TessPageIteratorBaseline(const TessPageIterator* handle, TessPageIteratorLevel level, 00338 int* x1, int* y1, int* x2, int* y2); 00339 00340 TESS_API void TESS_CALL TessPageIteratorOrientation(TessPageIterator* handle, TessOrientation* orientation, 00341 TessWritingDirection* writing_direction, TessTextlineOrder* textline_order, 00342 float* deskew_angle); 00343 00344 TESS_API void TESS_CALL TessPageIteratorParagraphInfo(TessPageIterator* handle, TessParagraphJustification* justification, 00345 BOOL *is_list_item, BOOL *is_crown, int *first_line_indent); 00346 00347 /* Result iterator */ 00348 00349 TESS_API void TESS_CALL TessResultIteratorDelete(TessResultIterator* handle); 00350 TESS_API TessResultIterator* 00351 TESS_CALL TessResultIteratorCopy(const TessResultIterator* handle); 00352 TESS_API TessPageIterator* 00353 TESS_CALL TessResultIteratorGetPageIterator(TessResultIterator* handle); 00354 TESS_API const TessPageIterator* 00355 TESS_CALL TessResultIteratorGetPageIteratorConst(const TessResultIterator* handle); 00356 TESS_API TessChoiceIterator* 00357 TESS_CALL TessResultIteratorGetChoiceIterator(const TessResultIterator* handle); 00358 00359 TESS_API BOOL TESS_CALL TessResultIteratorNext(TessResultIterator* handle, TessPageIteratorLevel level); 00360 TESS_API char* TESS_CALL TessResultIteratorGetUTF8Text(const TessResultIterator* handle, TessPageIteratorLevel level); 00361 TESS_API float TESS_CALL TessResultIteratorConfidence(const TessResultIterator* handle, TessPageIteratorLevel level); 00362 TESS_API const char* 00363 TESS_CALL TessResultIteratorWordRecognitionLanguage(const TessResultIterator* handle); 00364 TESS_API const char* 00365 TESS_CALL TessResultIteratorWordFontAttributes(const TessResultIterator* handle, BOOL* is_bold, BOOL* is_italic, 00366 BOOL* is_underlined, BOOL* is_monospace, BOOL* is_serif, 00367 BOOL* is_smallcaps, int* pointsize, int* font_id); 00368 00369 TESS_API BOOL TESS_CALL TessResultIteratorWordIsFromDictionary(const TessResultIterator* handle); 00370 TESS_API BOOL TESS_CALL TessResultIteratorWordIsNumeric(const TessResultIterator* handle); 00371 TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsSuperscript(const TessResultIterator* handle); 00372 TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsSubscript(const TessResultIterator* handle); 00373 TESS_API BOOL TESS_CALL TessResultIteratorSymbolIsDropcap(const TessResultIterator* handle); 00374 00375 TESS_API void TESS_CALL TessChoiceIteratorDelete(TessChoiceIterator* handle); 00376 TESS_API BOOL TESS_CALL TessChoiceIteratorNext(TessChoiceIterator* handle); 00377 TESS_API const char* TESS_CALL TessChoiceIteratorGetUTF8Text(const TessChoiceIterator* handle); 00378 TESS_API float TESS_CALL TessChoiceIteratorConfidence(const TessChoiceIterator* handle); 00379 00380 #ifdef __cplusplus 00381 } 00382 #endif 00383 00384 #endif /* TESSERACT_API_CAPI_H__ */