tesseract
Python-tesseract est un outil de reconnaissance optique de caractères (OCR) pour Python, c’est à dire un logiciel capable de reconnaître du texte à partir d’une image.
Python-tesseract utilise le moteur Tesseract-OCR de Google. Il peut lire tous les types d’images pris en charge par Python Imaging Library (PIL).
Installation
tesseract-OCR
tesseract-OCR est le « moteur » de l’OCR, il ne s’agit pas d’un module Python, mais il est utilisé par le module pytesseract .
Tous les renseignements sont disponibles sur la page https://github.com/tesseract-ocr/tesseract/wiki , mais voici quand même un petit résumé :
Sous Linux
En principe, sur les distributions les plus courantes de Linux, tesseract-OCR est déjà installé, sous le nom ‘tesseract’ ou bien ‘tesseract-ocr’. Dans le cas contraire, se reporter au gestionnaire de paquets de la distribution.
Sous Windows
Selon les cas, la procédure sous Windows est plus ou moins complexe…
- Administrateur de l’ordinateur : télécharger et installer : http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
- Non administrateur :
- Télécharger l’archive .zip contenant les fichiers binaires adaptés au système d’exploitation : https://www.dropbox.com/s/obiqvrt4m53pmoz/tesseract-4.0.0-alpha.zip?dl=1
- Dézipper cette archive dans le dossier
{Dossier de Python}\Lib\site-packages\pytesseract\tesseract
- Depuis ce lien, télécharger les fichiers de données propres aux langages à reconnaitre (par exemple : fra.traineddata), et les placer dans le sous-dossier
{Dossier de Python}\Lib\site-packages\pytesseract\tesseract\tessdata
Le contenu de {Dossier de Python}\Lib\site-packages\pytesseract
devrait alors ressembler à ça :
pytesseract
pytesseract est le module Python qui permet d’utiliser l’OCR avec Python.
Depuis le dossier contenant l’application pip (sous Windows, il s’agit du dossier {Dossier de Python}\scripts
) ou bien depuis la fenêtre de commande de Python3 :
pip install pytesseract
Si tout s’est bien passé, voici ce qui devrait s’afficher :
Collecting pytesseract Downloading pytesseract-0.1.6.tar.gz (149kB) 100% |################################| 153kB 972kB/s Building wheels for collected packages: pytesseract Running setup.py bdist_wheel for pytesseract ... done Stored in directory: C:\Users\________\AppData\Local\pip\Cache\wheels\f2\27\64\a8fa99a36b38980aaf8d1d2c87f5dd6b5a0a274b8706e3df36 Successfully built pytesseract Installing collected packages: pytesseract Successfully installed pytesseract-0.1.6
Il se peut qu’il y ai besoin d’utiliser une version de pytesseract encore plus récente que celle prévue dans le package de pip. (erreur TypeError: a bytes-like object is required, not ‘str’ ). Dans ce cas il faut remplacer le fichier pytesseract.py
par la dernière version du dépôt des sources :
Depuis https://github.com/madmaze/pytesseract, faire Clone or Dowload puis Download ZIP,et dézipper le tout pour retrouver pytesseract.py
.
ou bien télécharger directement https://github.com/madmaze/pytesseract/blob/master/src/pytesseract.py
Exemple simple
Cet exemple utilise la bibliothèque PIL pour ouvrir et pré-traiter l’image contenant le texte à reconnaitre.
import pytesseract from PIL import Image, ImageEnhance, ImageFilter pytesseract.pytesseract.tesseract_cmd = 'Lib/site-packages/pytesseract/tesseract/tesseract' im = Image.open("fantastique.jpg") # Ouverture du fichier image # Filtrage (augmentation du contraste) im = im.filter(ImageFilter.MedianFilter()) enhancer = ImageEnhance.Contrast(im) im = enhancer.enhance(2) im = im.convert('1') # Lancement de la procédure de reconnaissance text = pytesseract.image_to_string(im) print(text)
Avec l’image suivante (cliquer pour télécharger), …
… le résultat donné par tesseract est :
Linformatique, cest fantastique !
Bienvenue sur le site dédié a de
l’informatique au lycée Blaise Pascal de Clermont
Ferrand
Presque bon !
MERCI !!!