Documentation
¶
Index ¶
- func Version() string
- type Client
- func (client *Client) Close() (err error)
- func (client *Client) HOCRText() (out string, err error)
- func (client *Client) SetConfigFile(fpath string) error
- func (client *Client) SetImage(imagepath string) *Client
- func (client *Client) SetLanguage(langs ...string) *Client
- func (client *Client) SetPageSegMode(mode PageSegMode) *Client
- func (client *Client) SetVariable(key, value string) *Client
- func (client *Client) SetWhitelist(whitelist string) *Client
- func (client *Client) Text() (out string, err error)
- type PageSegMode
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct { // Trim specifies characters to trim, which would be trimed from result string. // As results of OCR, text often contains unnecessary characters, such as newlines, on the head/foot of string. // If `Trim` is set, this client will remove specified characters from the result. Trim bool // TessdataPrefix can indicate directory path to `tessdata`. // It is set `/usr/local/share/tessdata/` or something like that, as default. // TODO: Implement and test TessdataPrefix *string // Languages are languages to be detected. If not specified, it's gonna be "eng". Languages []string // ImagePath is just path to image file to be processed OCR. ImagePath string // Variables is just a pool to evaluate "tesseract::TessBaseAPI->SetVariable" in delay. // TODO: Think if it should be public, or private property. Variables map[string]string // PageSegMode is a mode for page layout analysis. // See https://github.com/otiai10/gosseract/issues/52 for more information. PageSegMode *PageSegMode // Config is a file path to the configuration for Tesseract // See http://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version // TODO: Fix link to official page ConfigFilePath string // contains filtered or unexported fields }
Client is argument builder for tesseract::TessBaseAPI.
func NewClient ¶
func NewClient() *Client
NewClient construct new Client. It's due to caller to Close this client.
Example ¶
client := NewClient() // Never forget to defer Close. It is due to caller to Close this client. defer client.Close()
Output:
func (*Client) Close ¶
Close frees allocated API. This MUST be called for ANY client constructed by "NewClient" function.
func (*Client) HOCRText ¶
HTML finally initialize tesseract::TessBaseAPI, execute OCR and returns hOCR text. See https://en.wikipedia.org/wiki/HOCR for more information of hOCR.
func (*Client) SetConfigFile ¶
SetConfigFile sets the file path to config file.
func (*Client) SetImage ¶
SetImage sets path to image file to be processed OCR.
Example ¶
client := NewClient() defer client.Close() client.SetImage("./test/data/001-gosseract.png") // See "ExampleClient_Text" for more practical usecase ;)
Output:
func (*Client) SetLanguage ¶
SetLanguage sets languages to use. English as default.
func (*Client) SetPageSegMode ¶
func (client *Client) SetPageSegMode(mode PageSegMode) *Client
SetPageSegMode sets "Page Segmentation Mode" (PSM) to detect layout of characters. See official documentation for PSM here https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method
func (*Client) SetVariable ¶
SetVariable sets parameters, representing tesseract::TessBaseAPI->SetVariable. See official documentation here https://zdenop.github.io/tesseract-doc/classtesseract_1_1_tess_base_a_p_i.html#a2e09259c558c6d8e0f7e523cbaf5adf5
func (*Client) SetWhitelist ¶
SetWhitelist sets whitelist chars. See official documentation for whitelist here https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#dictionaries-word-lists-and-patterns
Example ¶
client := NewClient() defer client.Close() client.SetImage("./test/data/002-confusing.png") client.SetWhitelist("IO-") text1, _ := client.Text() client.SetWhitelist("10-") text2, _ := client.Text() fmt.Println(text1, text2)
Output: IO- IOO 10-100
func (*Client) Text ¶
Text finally initialize tesseract::TessBaseAPI, execute OCR and extract text detected as string.
Example ¶
client := NewClient() defer client.Close() client.SetImage("./test/data/001-gosseract.png") text, err := client.Text() fmt.Println(text, err)
Output: otiai10 / gosseract <nil>
type PageSegMode ¶
type PageSegMode int
PageSegMode represents tesseract::PageSegMode. See https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#page-segmentation-method and https://github.com/tesseract-ocr/tesseract/blob/a18620cfea33d03032b71fe1b9fc424777e34252/ccstruct/publictypes.h#L158-L183 for more information.
const ( // PSM_OSD_ONLY - Orientation and script detection (OSD) only. PSM_OSD_ONLY PageSegMode = iota // PSM_AUTO_OSD - Automatic page segmentation with OSD. PSM_AUTO_OSD // PSM_AUTO_ONLY - Automatic page segmentation, but no OSD, or OCR. PSM_AUTO_ONLY // PSM_AUTO - (DEFAULT) Fully automatic page segmentation, but no OSD. PSM_AUTO // PSM_SINGLE_COLUMN - Assume a single column of text of variable sizes. PSM_SINGLE_COLUMN // PSM_SINGLE_BLOCK_VERT_TEXT - Assume a single uniform block of vertically aligned text. PSM_SINGLE_BLOCK_VERT_TEXT // PSM_SINGLE_BLOCK - Assume a single uniform block of text. PSM_SINGLE_BLOCK // PSM_SINGLE_LINE - Treat the image as a single text line. PSM_SINGLE_LINE // PSM_SINGLE_WORD - Treat the image as a single word. PSM_SINGLE_WORD // PSM_CIRCLE_WORD - Treat the image as a single word in a circle. PSM_CIRCLE_WORD // PSM_SINGLE_CHAR - Treat the image as a single character. PSM_SINGLE_CHAR // PSM_SPARSE_TEXT - Find as much text as possible in no particular order. PSM_SPARSE_TEXT // PSM_SPARSE_TEXT_OSD - Sparse text with orientation and script det. PSM_SPARSE_TEXT_OSD // PSM_RAW_LINE - Treat the image as a single text line, bypassing hacks that are Tesseract-specific. PSM_RAW_LINE // PSM_COUNT - Just a number of enum entries. This is NOT a member of PSM ;) PSM_COUNT )