# Tesseract
##### History on Tesseract on a high-level
- image outlines (advantage for white on black text) (can be achieved with canny edge detector)
- Blobs->lines->words(char spacing)
- train adaptive classifier?
- no need to fix skew

- fixed pitch

(each character takes up same amount of space)
- not fixed pitch

- chop joined characters

##### Image Preprocessing
- layout analysis ("Since HP had independently-developed page layout analysis technology that was used in products, (and therefore not released for open-source) Tesseract never needed its own page layout analysis. Tesseract therefore assumes that its input is a binary image with optional polygonal text regions defined.")
- Increase contrasts
- Convert to Binary (black and white, not grayscale)
- camera calibration
- unskew image (open cv)
- well aligned characters and
- as less pixel noise as possible.
- DPI of 300 works best for this purpose
- All of this has to be done with minimal latency -> meaning tradeoff
- DNN's do feature extraction for you.
#### Examples
- [tesseract.js on mp4 example](https://github.com/jeromewu/tesseract.js-video)