Package net.sourceforge.tess4j
Class Tesseract
- java.lang.Object
 - 
- net.sourceforge.tess4j.Tesseract
 
 
- 
- All Implemented Interfaces:
 ITesseract
public class Tesseract extends java.lang.Object implements ITesseract
An object layer on top ofTessAPI, provides character recognition support for common image formats, and multi-page TIFF images beyond the uncompressed, binary TIFF format supported by Tesseract OCR engine. The extended capabilities are provided by theJava Advanced Imaging Image I/O Tools.
Support for PDF documents is available throughGhost4J, aJNAwrapper forGPL Ghostscript, which should be installed and included in system path. If Ghostscript is not available, PDFBox will be used.
Any program that uses the library will need to ensure that the required libraries (the.jarfiles forjna,jai-imageio, andghost4j) are in its compile and run-timeclasspath. 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from interface net.sourceforge.tess4j.ITesseract
ITesseract.RenderedFormat 
 - 
 
- 
Field Summary
- 
Fields inherited from interface net.sourceforge.tess4j.ITesseract
htmlBeginTag, htmlEndTag 
 - 
 
- 
Constructor Summary
Constructors Constructor Description Tesseract() 
- 
Method Summary
Modifier and Type Method Description voidcreateDocuments(java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats)Creates documents for given renderer.voidcreateDocuments(java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats)Creates documents for given renderer.java.util.List<OCRResult>createDocumentsWithResults(java.awt.image.BufferedImage[] bis, java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel)Creates documents with OCR results for given renderers at specified page iterator level.OCRResultcreateDocumentsWithResults(java.awt.image.BufferedImage bi, java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel)Creates documents with OCR result for given renderers at specified page iterator level.java.util.List<OCRResult>createDocumentsWithResults(java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel)Creates documents with OCR results for given renderers at specified page iterator level.OCRResultcreateDocumentsWithResults(java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel)Creates documents with OCR result for given renderers at specified page iterator level.protected voiddispose()Releases all of the native resources used by this instance.java.lang.StringdoOCR(int xsize, int ysize, java.nio.ByteBuffer buf, java.awt.Rectangle rect, int bpp)Performs OCR operation.java.lang.StringdoOCR(int xsize, int ysize, java.nio.ByteBuffer buf, java.lang.String filename, java.awt.Rectangle rect, int bpp)Performs OCR operation.java.lang.StringdoOCR(java.awt.image.BufferedImage bi)Performs OCR operation.java.lang.StringdoOCR(java.awt.image.BufferedImage bi, java.awt.Rectangle rect)Performs OCR operation.java.lang.StringdoOCR(java.io.File imageFile)Performs OCR operation.java.lang.StringdoOCR(java.io.File inputFile, java.awt.Rectangle rect)Performs OCR operation.java.lang.StringdoOCR(java.util.List<javax.imageio.IIOImage> imageList, java.awt.Rectangle rect)Performs OCR operation.java.lang.StringdoOCR(java.util.List<javax.imageio.IIOImage> imageList, java.lang.String filename, java.awt.Rectangle rect)Performs OCR operation.protected TessAPIgetAPI()Returns TessAPI object.protected ITessAPI.TessBaseAPIgetHandle()Returns API handle.protected java.lang.StringgetOCRText(java.lang.String filename, int pageNum)Gets recognized text.java.util.List<java.awt.Rectangle>getSegmentedRegions(java.awt.image.BufferedImage bi, int pageIteratorLevel)Gets segmented regions at specified page iterator level.java.util.List<Word>getWords(java.awt.image.BufferedImage bi, int pageIteratorLevel)Gets recognized words at specified page iterator level.protected voidinit()Initializes Tesseract engine.voidsetConfigs(java.util.List<java.lang.String> configs)Sets configs to be passed to Tesseract'sInitmethod.voidsetDatapath(java.lang.String datapath)Sets path totessdata.voidsetHocr(boolean hocr)Enables hocr output.protected voidsetImage(int xsize, int ysize, java.nio.ByteBuffer buf, java.awt.Rectangle rect, int bpp)Sets image to be processed.protected voidsetImage(java.awt.image.RenderedImage image, java.awt.Rectangle rect)A wrapper forsetImage(int, int, ByteBuffer, Rectangle, int).voidsetLanguage(java.lang.String language)Sets language for OCR.voidsetOcrEngineMode(int ocrEngineMode)Sets OCR engine mode.voidsetPageSegMode(int mode)Sets page segmentation mode.voidsetTessVariable(java.lang.String key, java.lang.String value)Set the value of Tesseract's internal parameter.protected voidsetTessVariables()Sets Tesseract's internal parameters. 
 - 
 
- 
- 
Method Detail
- 
getAPI
protected TessAPI getAPI()
Returns TessAPI object.- Returns:
 - api
 
 
- 
getHandle
protected ITessAPI.TessBaseAPI getHandle()
Returns API handle.- Returns:
 - handle
 
 
- 
setDatapath
public void setDatapath(java.lang.String datapath)
Sets path totessdata.- Specified by:
 setDatapathin interfaceITesseract- Parameters:
 datapath- the tessdata path to set
 
- 
setLanguage
public void setLanguage(java.lang.String language)
Sets language for OCR.- Specified by:
 setLanguagein interfaceITesseract- Parameters:
 language- the language code, which follows ISO 639-3 standard.
 
- 
setOcrEngineMode
public void setOcrEngineMode(int ocrEngineMode)
Sets OCR engine mode.- Specified by:
 setOcrEngineModein interfaceITesseract- Parameters:
 ocrEngineMode- the OcrEngineMode to set
 
- 
setPageSegMode
public void setPageSegMode(int mode)
Sets page segmentation mode.- Specified by:
 setPageSegModein interfaceITesseract- Parameters:
 mode- the page segmentation mode to set
 
- 
setHocr
public void setHocr(boolean hocr)
Enables hocr output.- Parameters:
 hocr- to enable or disable hocr output
 
- 
setTessVariable
public void setTessVariable(java.lang.String key, java.lang.String value)Set the value of Tesseract's internal parameter.- Specified by:
 setTessVariablein interfaceITesseract- Parameters:
 key- variable name, e.g.,tessedit_create_hocr,tessedit_char_whitelist, etc.value- value for corresponding variable, e.g., "1", "0", "0123456789", etc.
 
- 
setConfigs
public void setConfigs(java.util.List<java.lang.String> configs)
Sets configs to be passed to Tesseract'sInitmethod.- Specified by:
 setConfigsin interfaceITesseract- Parameters:
 configs- list of config filenames, e.g., "digits", "bazaar", "quiet"
 
- 
doOCR
public java.lang.String doOCR(java.io.File imageFile) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 imageFile- an image file- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(java.io.File inputFile, java.awt.Rectangle rect) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 inputFile- an image filerect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(java.awt.image.BufferedImage bi) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 bi- a buffered image- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(java.awt.image.BufferedImage bi, java.awt.Rectangle rect) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 bi- a buffered imagerect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(java.util.List<javax.imageio.IIOImage> imageList, java.awt.Rectangle rect) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 imageList- a list ofIIOImageobjectsrect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(java.util.List<javax.imageio.IIOImage> imageList, java.lang.String filename, java.awt.Rectangle rect) throws TesseractExceptionPerforms OCR operation.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 imageList- a list ofIIOImageobjectsfilename- input file name. Needed only for training and reading a UNLV zone file.rect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(int xsize, int ysize, java.nio.ByteBuffer buf, java.awt.Rectangle rect, int bpp) throws TesseractExceptionPerforms OCR operation. UseSetImage, (optionally)SetRectangle, and one or more of theGet*Textfunctions.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 xsize- width of imageysize- height of imagebuf- pixel datarect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.bpp- bits per pixel, represents the bit depth of the image, with 1 for binary bitmap, 8 for gray, and 24 for color RGB.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
doOCR
public java.lang.String doOCR(int xsize, int ysize, java.nio.ByteBuffer buf, java.lang.String filename, java.awt.Rectangle rect, int bpp) throws TesseractExceptionPerforms OCR operation. UseSetImage, (optionally)SetRectangle, and one or more of theGet*Textfunctions.- Specified by:
 doOCRin interfaceITesseract- Parameters:
 xsize- width of imageysize- height of imagebuf- pixel datafilename- input file name. Needed only for training and reading a UNLV zone file.rect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.bpp- bits per pixel, represents the bit depth of the image, with 1 for binary bitmap, 8 for gray, and 24 for color RGB.- Returns:
 - the recognized text
 - Throws:
 TesseractException
 
- 
init
protected void init()
Initializes Tesseract engine. 
- 
setTessVariables
protected void setTessVariables()
Sets Tesseract's internal parameters. 
- 
setImage
protected void setImage(java.awt.image.RenderedImage image, java.awt.Rectangle rect) throws java.io.IOExceptionA wrapper forsetImage(int, int, ByteBuffer, Rectangle, int).- Parameters:
 image- a rendered imagerect- region of interest- Throws:
 java.io.IOException
 
- 
setImage
protected void setImage(int xsize, int ysize, java.nio.ByteBuffer buf, java.awt.Rectangle rect, int bpp)Sets image to be processed.- Parameters:
 xsize- width of imageysize- height of imagebuf- pixel datarect- the bounding rectangle defines the region of the image to be recognized. A rectangle of zero dimension ornullindicates the whole image.bpp- bits per pixel, represents the bit depth of the image, with 1 for binary bitmap, 8 for gray, and 24 for color RGB.
 
- 
getOCRText
protected java.lang.String getOCRText(java.lang.String filename, int pageNum)Gets recognized text.- Parameters:
 filename- input file name. Needed only for reading a UNLV zone file.pageNum- page number; needed for hocr paging.- Returns:
 - the recognized text
 
 
- 
createDocuments
public void createDocuments(java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats) throws TesseractExceptionCreates documents for given renderer.- Specified by:
 createDocumentsin interfaceITesseract- Parameters:
 filename- input imageoutputbase- output filename without extensionformats- types of renderer- Throws:
 TesseractException
 
- 
createDocuments
public void createDocuments(java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats) throws TesseractExceptionCreates documents for given renderer.- Specified by:
 createDocumentsin interfaceITesseract- Parameters:
 filenames- array of input filesoutputbases- array of output filenames without extensionformats- types of renderer- Throws:
 TesseractException
 
- 
getSegmentedRegions
public java.util.List<java.awt.Rectangle> getSegmentedRegions(java.awt.image.BufferedImage bi, int pageIteratorLevel) throws TesseractExceptionGets segmented regions at specified page iterator level.- Specified by:
 getSegmentedRegionsin interfaceITesseract- Parameters:
 bi- input buffered imagepageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - list of 
Rectangle - Throws:
 TesseractException
 
- 
getWords
public java.util.List<Word> getWords(java.awt.image.BufferedImage bi, int pageIteratorLevel)
Gets recognized words at specified page iterator level.- Specified by:
 getWordsin interfaceITesseract- Parameters:
 bi- input buffered imagepageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - list of 
Word 
 
- 
createDocumentsWithResults
public OCRResult createDocumentsWithResults(java.awt.image.BufferedImage bi, java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel) throws TesseractException
Creates documents with OCR result for given renderers at specified page iterator level.- Specified by:
 createDocumentsWithResultsin interfaceITesseract- Parameters:
 bi- input buffered imagefilename- filename (optional)outputbase- output filenames without extensionformats- types of rendererpageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - OCR result
 - Throws:
 TesseractException
 
- 
createDocumentsWithResults
public java.util.List<OCRResult> createDocumentsWithResults(java.awt.image.BufferedImage[] bis, java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel) throws TesseractException
Creates documents with OCR results for given renderers at specified page iterator level.- Specified by:
 createDocumentsWithResultsin interfaceITesseract- Parameters:
 bis- array of input buffered imagesfilenames- array of filenamesoutputbases- array of output filenames without extensionformats- types of rendererpageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - list of OCR results
 - Throws:
 TesseractException
 
- 
createDocumentsWithResults
public OCRResult createDocumentsWithResults(java.lang.String filename, java.lang.String outputbase, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel) throws TesseractException
Creates documents with OCR result for given renderers at specified page iterator level.- Specified by:
 createDocumentsWithResultsin interfaceITesseract- Parameters:
 filename- input fileoutputbase- output filenames without extensionformats- types of rendererpageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - OCR result
 - Throws:
 TesseractException
 
- 
createDocumentsWithResults
public java.util.List<OCRResult> createDocumentsWithResults(java.lang.String[] filenames, java.lang.String[] outputbases, java.util.List<ITesseract.RenderedFormat> formats, int pageIteratorLevel) throws TesseractException
Creates documents with OCR results for given renderers at specified page iterator level.- Specified by:
 createDocumentsWithResultsin interfaceITesseract- Parameters:
 filenames- array of input filesoutputbases- array of output filenames without extensionformats- types of rendererpageIteratorLevel- TessPageIteratorLevel enum- Returns:
 - list of OCR results
 - Throws:
 TesseractException
 
- 
dispose
protected void dispose()
Releases all of the native resources used by this instance. 
 - 
 
 -