public interface TessAPI
extends com.sun.jna.Library
Tesseract OCR 3.02 API
using
JNA Interface Mapping
.Modifier and Type | Interface and Description |
---|---|
static class |
TessAPI.ETEXT_DESC |
static class |
TessAPI.TessBaseAPI |
static interface |
TessAPI.TessOcrEngineMode
When Tesseract/Cube is initialized we can choose to instantiate/load/run
only the Tesseract part, only the Cube part or both along with the
combiner.
|
static interface |
TessAPI.TessOrientation
+------------------+
| 1 Aaaa Aaaa Aaaa |
| Aaa aa aaa aa |
| aaaaaa A aa aaa.
|
static class |
TessAPI.TessPageIterator |
static interface |
TessAPI.TessPageIteratorLevel
Enum of the elements of the page hierarchy, used in
ResultIterator to provide functions that operate on each
level without having to have 5x as many functions. |
static interface |
TessAPI.TessPageSegMode
Possible modes for page layout analysis.
|
static interface |
TessAPI.TessPolyBlockType |
static class |
TessAPI.TessResultIterator |
static interface |
TessAPI.TessTextlineOrder
The text lines are read in the given sequence.
In English, the order is top-to-bottom. |
static interface |
TessAPI.TessWritingDirection
The grapheme clusters within a line of text are laid out logically in
this direction, judged when looking at the text line rotated so that its
Orientation is "page up".
For English text, the writing direction is left-to-right. |
Modifier and Type | Field and Description |
---|---|
static int |
FALSE |
static TessAPI |
INSTANCE
An instance of the class library.
|
static java.lang.String |
LIB_NAME
Native library name.
|
static java.lang.String |
LIB_NAME_NON_WIN |
static int |
TRUE |
static boolean |
WINDOWS |
Modifier and Type | Method and Description |
---|---|
int |
TessBaseAPIAdaptToWordStr(TessAPI.TessBaseAPI handle,
int mode,
java.lang.String wordstr)
Applies the given word to the adaptive classifier if possible.
|
com.sun.jna.ptr.IntByReference |
TessBaseAPIAllWordConfidences(TessAPI.TessBaseAPI handle)
Returns all word confidences (between 0 and 100) in an array, terminated
by -1.
|
TessAPI.TessPageIterator |
TessBaseAPIAnalyseLayout(TessAPI.TessBaseAPI handle)
Runs page layout analysis in the mode set by SetPageSegMode.
|
void |
TessBaseAPIClear(TessAPI.TessBaseAPI handle)
Free up recognition results and any stored image data, without actually
freeing any recognition data that would be time-consuming to reload.
|
void |
TessBaseAPIClearAdaptiveClassifier(TessAPI.TessBaseAPI handle)
Call between pages or documents etc to free up memory and forget adaptive
data.
|
TessAPI.TessBaseAPI |
TessBaseAPICreate()
Creates an instance of the base class for all Tesseract APIs.
|
void |
TessBaseAPIDelete(TessAPI.TessBaseAPI handle)
Disposes the TesseractAPI instance.
|
void |
TessBaseAPIEnd(TessAPI.TessBaseAPI handle)
Close down tesseract and free up all memory.
|
com.sun.jna.ptr.PointerByReference |
TessBaseAPIGetAvailableLanguagesAsVector(TessAPI.TessBaseAPI handle)
Returns the available languages in the vector of STRINGs.
|
int |
TessBaseAPIGetBoolVariable(TessAPI.TessBaseAPI handle,
java.lang.String name,
java.nio.IntBuffer value) |
java.lang.String |
TessBaseAPIGetBoxText(TessAPI.TessBaseAPI handle,
int page_number)
The recognized text is returned as a char* which is coded in the same
format as a box file used in training.
|
int |
TessBaseAPIGetDoubleVariable(TessAPI.TessBaseAPI handle,
java.lang.String name,
java.nio.DoubleBuffer value) |
java.lang.String |
TessBaseAPIGetHOCRText(TessAPI.TessBaseAPI handle,
int page_number)
Make a HTML-formatted string with hOCR markup from the internal data
structures.
|
java.lang.String |
TessBaseAPIGetInitLanguagesAsString(TessAPI.TessBaseAPI handle)
Returns the languages string used in the last valid initialization.
|
int |
TessBaseAPIGetIntVariable(TessAPI.TessBaseAPI handle,
java.lang.String name,
java.nio.IntBuffer value)
Returns true (1) if the parameter was found among Tesseract parameters.
|
TessAPI.TessResultIterator |
TessBaseAPIGetIterator(TessAPI.TessBaseAPI handle)
Get a reading-order iterator to the results of LayoutAnalysis and/or
Recognize.
|
com.sun.jna.ptr.PointerByReference |
TessBaseAPIGetLoadedLanguagesAsVector(TessAPI.TessBaseAPI handle)
Returns the loaded languages in the vector of STRINGs.
|
int |
TessBaseAPIGetPageSegMode(TessAPI.TessBaseAPI handle)
Return the current page segmentation mode.
|
java.lang.String |
TessBaseAPIGetStringVariable(TessAPI.TessBaseAPI handle,
java.lang.String name) |
int |
TessBaseAPIGetTextDirection(TessAPI.TessBaseAPI handle,
java.nio.IntBuffer out_offset,
java.nio.FloatBuffer out_slope) |
java.lang.String |
TessBaseAPIGetUnichar(TessAPI.TessBaseAPI handle,
int unichar_id)
This method returns the string form of the specified unichar.
|
java.lang.String |
TessBaseAPIGetUNLVText(TessAPI.TessBaseAPI handle)
The recognized text is returned as a char* which is coded as UNLV format
Latin-1 with specific reject and suspect codes and must be freed with the
delete [] operator.
|
java.lang.String |
TessBaseAPIGetUTF8Text(TessAPI.TessBaseAPI handle)
The recognized text is returned as a char* which is coded as UTF-8 and
must be freed with the delete [] operator.
|
int |
TessBaseAPIInit1(TessAPI.TessBaseAPI handle,
java.lang.String datapath,
java.lang.String language,
int oem,
com.sun.jna.ptr.PointerByReference configs,
int configs_size)
Instances are now mostly thread-safe and totally independent, but some
global parameters remain.
|
int |
TessBaseAPIInit2(TessAPI.TessBaseAPI handle,
java.lang.String datapath,
java.lang.String language,
int oem) |
int |
TessBaseAPIInit3(TessAPI.TessBaseAPI handle,
java.lang.String datapath,
java.lang.String language) |
void |
TessBaseAPIInitForAnalysePage(TessAPI.TessBaseAPI handle)
Init only for page layout analysis.
|
int |
TessBaseAPIInitLangMod(TessAPI.TessBaseAPI handle,
java.lang.String datapath,
java.lang.String language)
Init only the lang model component of Tesseract.
|
int |
TessBaseAPIIsValidWord(TessAPI.TessBaseAPI handle,
java.lang.String word)
Check whether a word is valid according to Tesseract's language model.
|
int |
TessBaseAPIMeanTextConf(TessAPI.TessBaseAPI handle)
Returns the (average) confidence value between 0 and 100.
|
void |
TessBaseAPIPrintVariablesToFile(TessAPI.TessBaseAPI handle,
java.lang.String filename)
Print Tesseract parameters to the given file.
Note: Must not be the first method called after instance create. |
java.lang.String |
TessBaseAPIProcessPages(TessAPI.TessBaseAPI handle,
java.lang.String filename,
java.lang.String retry_config,
int timeout_millisec)
Recognizes all the pages in the named file, as a multi-page tiff or list
of filenames, or single image, and gets the appropriate kind of text
according to parameters:
tessedit_create_boxfile ,
tessedit_make_boxes_from_boxes ,
tessedit_write_unlv ,
tessedit_create_hocr . |
void |
TessBaseAPIReadConfigFile(TessAPI.TessBaseAPI handle,
java.lang.String filename,
int init_only)
Read a "config" file containing a set of param, value pairs.
|
int |
TessBaseAPIRecognize(TessAPI.TessBaseAPI handle,
TessAPI.ETEXT_DESC monitor)
Recognize the image from SetAndThresholdImage, generating Tesseract
internal structures.
|
int |
TessBaseAPIRecognizeForChopTest(TessAPI.TessBaseAPI handle,
TessAPI.ETEXT_DESC monitor)
Variant on Recognize used for testing chopper.
|
java.lang.String |
TessBaseAPIRect(TessAPI.TessBaseAPI handle,
java.nio.ByteBuffer 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.
|
void |
TessBaseAPISetImage(TessAPI.TessBaseAPI handle,
java.nio.ByteBuffer imagedata,
int width,
int height,
int bytes_per_pixel,
int bytes_per_line)
Provide an image for Tesseract to recognize.
|
void |
TessBaseAPISetInputName(TessAPI.TessBaseAPI handle,
java.lang.String name)
Set the name of the input file.
|
void |
TessBaseAPISetOutputName(TessAPI.TessBaseAPI handle,
java.lang.String name)
Set the name of the bonus output files.
|
void |
TessBaseAPISetPageSegMode(TessAPI.TessBaseAPI handle,
int mode)
Set the current page segmentation mode.
|
void |
TessBaseAPISetRectangle(TessAPI.TessBaseAPI handle,
int left,
int top,
int width,
int height)
Restrict recognition to a sub-rectangle of the image.
|
void |
TessBaseAPISetSourceResolution(TessAPI.TessBaseAPI handle,
int ppi)
Set the resolution of the source image in pixels per inch so font size
information can be calculated in results.
|
int |
TessBaseAPISetVariable(TessAPI.TessBaseAPI handle,
java.lang.String name,
java.lang.String 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.
|
java.lang.String |
TessBaseGetInitLanguagesAsString(TessAPI.TessBaseAPI handle)
Returns the languages string used in the last valid initialization.
|
int |
TessPageIteratorBaseline(TessAPI.TessPageIterator handle,
int level,
java.nio.IntBuffer x1,
java.nio.IntBuffer y1,
java.nio.IntBuffer x2,
java.nio.IntBuffer y2) |
void |
TessPageIteratorBegin(TessAPI.TessPageIterator handle) |
int |
TessPageIteratorBlockType(TessAPI.TessPageIterator handle) |
int |
TessPageIteratorBoundingBox(TessAPI.TessPageIterator handle,
int level,
java.nio.IntBuffer left,
java.nio.IntBuffer top,
java.nio.IntBuffer right,
java.nio.IntBuffer bottom) |
TessAPI.TessPageIterator |
TessPageIteratorCopy(TessAPI.TessPageIterator handle) |
void |
TessPageIteratorDelete(TessAPI.TessPageIterator handle) |
int |
TessPageIteratorIsAtBeginningOf(TessAPI.TessPageIterator handle,
int level) |
int |
TessPageIteratorIsAtFinalElement(TessAPI.TessPageIterator handle,
int level,
int element) |
int |
TessPageIteratorNext(TessAPI.TessPageIterator handle,
int level) |
void |
TessPageIteratorOrientation(TessAPI.TessPageIterator handle,
java.nio.IntBuffer orientation,
java.nio.IntBuffer writing_direction,
java.nio.IntBuffer textline_order,
java.nio.FloatBuffer deskew_angle) |
float |
TessResultIteratorConfidence(TessAPI.TessResultIterator handle,
int level) |
TessAPI.TessResultIterator |
TessResultIteratorCopy(TessAPI.TessResultIterator handle) |
void |
TessResultIteratorDelete(TessAPI.TessResultIterator handle) |
TessAPI.TessPageIterator |
TessResultIteratorGetPageIterator(TessAPI.TessResultIterator handle) |
TessAPI.TessPageIterator |
TessResultIteratorGetPageIteratorConst(TessAPI.TessResultIterator handle) |
java.lang.String |
TessResultIteratorGetUTF8Text(TessAPI.TessResultIterator handle,
int level) |
int |
TessResultIteratorSymbolIsDropcap(TessAPI.TessResultIterator handle) |
int |
TessResultIteratorSymbolIsSubscript(TessAPI.TessResultIterator handle) |
int |
TessResultIteratorSymbolIsSuperscript(TessAPI.TessResultIterator handle) |
java.lang.String |
TessResultIteratorWordFontAttributes(TessAPI.TessResultIterator handle,
java.nio.IntBuffer is_bold,
java.nio.IntBuffer is_italic,
java.nio.IntBuffer is_underlined,
java.nio.IntBuffer is_monospace,
java.nio.IntBuffer is_serif,
java.nio.IntBuffer is_smallcaps,
java.nio.IntBuffer pointsize,
java.nio.IntBuffer font_id) |
int |
TessResultIteratorWordIsFromDictionary(TessAPI.TessResultIterator handle) |
int |
TessResultIteratorWordIsNumeric(TessAPI.TessResultIterator handle) |
java.lang.String |
TessVersion()
Returns the version identifier.
|
static final boolean WINDOWS
static final java.lang.String LIB_NAME
static final java.lang.String LIB_NAME_NON_WIN
static final TessAPI INSTANCE
static final int TRUE
static final int FALSE
java.lang.String TessVersion()
TessAPI.TessBaseAPI TessBaseAPICreate()
void TessBaseAPIDelete(TessAPI.TessBaseAPI handle)
void TessBaseAPISetInputName(TessAPI.TessBaseAPI handle, java.lang.String name)
void TessBaseAPISetOutputName(TessAPI.TessBaseAPI handle, java.lang.String name)
int TessBaseAPISetVariable(TessAPI.TessBaseAPI handle, java.lang.String name, java.lang.String value)
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()
.Init()
. Only works for non-init variables (init variables
should be passed to
Init()
).int TessBaseAPIGetIntVariable(TessAPI.TessBaseAPI handle, java.lang.String name, java.nio.IntBuffer value)
int TessBaseAPIGetBoolVariable(TessAPI.TessBaseAPI handle, java.lang.String name, java.nio.IntBuffer value)
int TessBaseAPIGetDoubleVariable(TessAPI.TessBaseAPI handle, java.lang.String name, java.nio.DoubleBuffer value)
java.lang.String TessBaseAPIGetStringVariable(TessAPI.TessBaseAPI handle, java.lang.String name)
void TessBaseAPIPrintVariablesToFile(TessAPI.TessBaseAPI handle, java.lang.String filename)
int TessBaseAPIInit1(TessAPI.TessBaseAPI handle, java.lang.String datapath, java.lang.String language, int oem, com.sun.jna.ptr.PointerByReference configs, int configs_size)
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.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. The
language may be a string of the form [~]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
.set_only_non_debug_params
is true, only params that do not
contain "debug" in the name will be set.int TessBaseAPIInit2(TessAPI.TessBaseAPI handle, java.lang.String datapath, java.lang.String language, int oem)
int TessBaseAPIInit3(TessAPI.TessBaseAPI handle, java.lang.String datapath, java.lang.String language)
java.lang.String TessBaseAPIGetInitLanguagesAsString(TessAPI.TessBaseAPI handle)
GetLoadedLanguagesAsVector
. The returned string should NOT
be deleted.com.sun.jna.ptr.PointerByReference TessBaseAPIGetLoadedLanguagesAsVector(TessAPI.TessBaseAPI handle)
Init
, including those loaded as dependencies of other loaded
languages.com.sun.jna.ptr.PointerByReference TessBaseAPIGetAvailableLanguagesAsVector(TessAPI.TessBaseAPI handle)
int TessBaseAPIInitLangMod(TessAPI.TessBaseAPI handle, java.lang.String datapath, java.lang.String language)
SetVariable
and
IsValidWord
. WARNING: temporary! This function will be
removed from here and placed in a separate API at some future time.void TessBaseAPIInitForAnalysePage(TessAPI.TessBaseAPI handle)
SetImage
and
AnalysePage
. Calls that attempt recognition will generate an
error.void TessBaseAPIReadConfigFile(TessAPI.TessBaseAPI handle, java.lang.String filename, int init_only)
tessdata/configs
,
tessdata/tessconfigs
and also accepts a relative or absolute
path name. Note: only non-init params will be set (init params are set by
Init()
).void TessBaseAPISetPageSegMode(TessAPI.TessBaseAPI handle, int mode)
ReadConfigFile
or
SetVariable("tessedit_pageseg_mode", mode as string)
.int TessBaseAPIGetPageSegMode(TessAPI.TessBaseAPI handle)
java.lang.String TessBaseAPIRect(TessAPI.TessBaseAPI handle, java.nio.ByteBuffer imagedata, int bytes_per_pixel, int bytes_per_line, int left, int top, int width, int height)
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.TesseractRect
is the simplified convenience interface. For
advanced uses, use
SetImage
, (optionally)
SetRectangle
,
Recognize
, and one or more of the
Get*Text
functions below.void TessBaseAPIClearAdaptiveClassifier(TessAPI.TessBaseAPI handle)
void TessBaseAPISetImage(TessAPI.TessBaseAPI handle, java.nio.ByteBuffer imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line)
Get*Text
functions.
SetImage
clears all recognition results, and sets the
rectangle to the full image, so it may be followed immediately by a
GetUTF8Text
, and it will automatically perform recognition.void TessBaseAPISetSourceResolution(TessAPI.TessBaseAPI handle, int ppi)
void TessBaseAPISetRectangle(TessAPI.TessBaseAPI handle, int left, int top, int width, int height)
SetImage
. Each
SetRectangle
clears the recognition results so multiple
rectangles can be recognized with the same image.TessAPI.TessPageIterator TessBaseAPIAnalyseLayout(TessAPI.TessBaseAPI handle)
Init
,
SetImage
,
Recognize
,
Clear
,
End
, DetectOS, or anything else that changes the internal
PAGE_RES.int TessBaseAPIRecognize(TessAPI.TessBaseAPI handle, TessAPI.ETEXT_DESC monitor)
Get*Text
functions below will call
Recognize
if needed. After Recognize, the output is kept
internally until the next
SetImage
.int TessBaseAPIRecognizeForChopTest(TessAPI.TessBaseAPI handle, TessAPI.ETEXT_DESC monitor)
TessAPI.TessResultIterator TessBaseAPIGetIterator(TessAPI.TessBaseAPI handle)
Init
,
SetImage
,
Recognize
,
Clear
,
End
, DetectOS, or anything else that changes the internal
PAGE_RES.java.lang.String TessBaseAPIProcessPages(TessAPI.TessBaseAPI handle, java.lang.String filename, java.lang.String retry_config, int timeout_millisec)
tessedit_create_boxfile
,
tessedit_make_boxes_from_boxes
,
tessedit_write_unlv
,
tessedit_create_hocr
. Calls ProcessPage on each page in the
input file, which may be a multi-page tiff, single-page other file
format, or a plain text list of images to read. If tessedit_page_number
is non-negative, processing begins at that page of a multi-page tiff
file, or filelist. The text is returned in text_out. Returns false on
error. If non-zero timeout_millisec terminates processing after the
timeout on a single page. If non-NULL and non-empty, and some page fails
for some reason, the page is reprocessed with the retry_config config
file. Useful for interactively debugging a bad page.java.lang.String TessBaseAPIGetUTF8Text(TessAPI.TessBaseAPI handle)
java.lang.String TessBaseAPIGetHOCRText(TessAPI.TessBaseAPI handle, int page_number)
java.lang.String TessBaseAPIGetBoxText(TessAPI.TessBaseAPI handle, int page_number)
java.lang.String TessBaseAPIGetUNLVText(TessAPI.TessBaseAPI handle)
int TessBaseAPIMeanTextConf(TessAPI.TessBaseAPI handle)
com.sun.jna.ptr.IntByReference TessBaseAPIAllWordConfidences(TessAPI.TessBaseAPI handle)
int TessBaseAPIAdaptToWordStr(TessAPI.TessBaseAPI handle, int mode, java.lang.String wordstr)
void TessBaseAPIClear(TessAPI.TessBaseAPI handle)
SetImage
or
TesseractRect
before doing any
Recognize
or
Get*
operation.void TessBaseAPIEnd(TessAPI.TessBaseAPI handle)
End()
is equivalent to destructing and reconstructing your
TessBaseAPI. Once
End()
has been used, none of the other API functions may be
used other than
Init
and anything declared above it in the class definition.int TessBaseAPIIsValidWord(TessAPI.TessBaseAPI handle, java.lang.String word)
int TessBaseAPIGetTextDirection(TessAPI.TessBaseAPI handle, java.nio.IntBuffer out_offset, java.nio.FloatBuffer out_slope)
java.lang.String TessBaseAPIGetUnichar(TessAPI.TessBaseAPI handle, int unichar_id)
java.lang.String TessBaseGetInitLanguagesAsString(TessAPI.TessBaseAPI handle)
void TessPageIteratorDelete(TessAPI.TessPageIterator handle)
TessAPI.TessPageIterator TessPageIteratorCopy(TessAPI.TessPageIterator handle)
void TessPageIteratorBegin(TessAPI.TessPageIterator handle)
int TessPageIteratorNext(TessAPI.TessPageIterator handle, int level)
int TessPageIteratorIsAtBeginningOf(TessAPI.TessPageIterator handle, int level)
int TessPageIteratorIsAtFinalElement(TessAPI.TessPageIterator handle, int level, int element)
int TessPageIteratorBoundingBox(TessAPI.TessPageIterator handle, int level, java.nio.IntBuffer left, java.nio.IntBuffer top, java.nio.IntBuffer right, java.nio.IntBuffer bottom)
int TessPageIteratorBlockType(TessAPI.TessPageIterator handle)
int TessPageIteratorBaseline(TessAPI.TessPageIterator handle, int level, java.nio.IntBuffer x1, java.nio.IntBuffer y1, java.nio.IntBuffer x2, java.nio.IntBuffer y2)
void TessPageIteratorOrientation(TessAPI.TessPageIterator handle, java.nio.IntBuffer orientation, java.nio.IntBuffer writing_direction, java.nio.IntBuffer textline_order, java.nio.FloatBuffer deskew_angle)
void TessResultIteratorDelete(TessAPI.TessResultIterator handle)
TessAPI.TessResultIterator TessResultIteratorCopy(TessAPI.TessResultIterator handle)
TessAPI.TessPageIterator TessResultIteratorGetPageIterator(TessAPI.TessResultIterator handle)
TessAPI.TessPageIterator TessResultIteratorGetPageIteratorConst(TessAPI.TessResultIterator handle)
java.lang.String TessResultIteratorGetUTF8Text(TessAPI.TessResultIterator handle, int level)
float TessResultIteratorConfidence(TessAPI.TessResultIterator handle, int level)
java.lang.String TessResultIteratorWordFontAttributes(TessAPI.TessResultIterator handle, java.nio.IntBuffer is_bold, java.nio.IntBuffer is_italic, java.nio.IntBuffer is_underlined, java.nio.IntBuffer is_monospace, java.nio.IntBuffer is_serif, java.nio.IntBuffer is_smallcaps, java.nio.IntBuffer pointsize, java.nio.IntBuffer font_id)
int TessResultIteratorWordIsFromDictionary(TessAPI.TessResultIterator handle)
int TessResultIteratorWordIsNumeric(TessAPI.TessResultIterator handle)
int TessResultIteratorSymbolIsSuperscript(TessAPI.TessResultIterator handle)
int TessResultIteratorSymbolIsSubscript(TessAPI.TessResultIterator handle)
int TessResultIteratorSymbolIsDropcap(TessAPI.TessResultIterator handle)