Python wrapper for the tesseract OCR engine. The module is based on OpenCV
Switch branches/tags
Nothing to show
Clone or download
Failed to load latest commit information. refactor code +python3 ready Sep 8, 2017 convert image to grayscale before OCR Sep 8, 2017


Python wrapper for the tesseract OCR engine. The module is based on OpenCV.


There is already multiples tesseract python modules, but none of them satisfied me. This one is different on the following point:

  • All the classes are put in the same file and all inessential class are removed
  • Use OpenCV instead of PIL (to really an advantage because PIL as far more widespread, but better fit my needs ;))
  • Use subprocess.communicate instead of subprocess.wait to avoid any output in the shell or in the programs that use the module.
  • Management of the differents languages via the option '-l' because the original pytesser use the default language which is english. By this way the detection of french for instance is totally inacurrate.
  • Management of of the pagesegmode, which allow to modify the behavior of tesseract if we want for instance to detect only one character, a word or a line.
  • The code is far more straightforward (my opinion)


sudo apt-get install tesseract tesseract-ocr-all
sudo pip install opencv-python

How to use it ?

There is to ways to use it. Either you give it a filename, either directly an image. For a filename you can do:

import pytesser
txt = pytesser.image_file_to_string("myimage.jpg")
#By default language is eng, and page seg mode auto

#To give specifify parameters:
txt = pytesser.image_to_string("myimage.jpg","fra",pytesser.PSM_SINGLE_WORD) #Analyse image as a single french word

Or you can directly give it an OpenCV image like this:

image = cv2.imread("myimage.jpg")
txt = pytesser.image_to_string(image)