Lisez les données d'image avec Python et convertissez-les en données texte avec OCR.
Python Cet article a utilisé Python 2.7.
Tesseract-ocr C'est un moteur OCR. J'ai utilisé Tesseract-ocr 3.0.4. Si vous souhaitez installer sur MacOS X, consultez également Installation des outils de formation tesseract-ocr sur MacOS X.
pyocr Un wrapper pour utiliser le moteur OCR de Python. Il existe de nombreux wrappers similaires à rechercher, mais j'en ai essayé quelques-uns et j'ai choisi celui pour lequel il semblait facile d'écrire du code. Le référentiel est ici.
$ pip install pyocr
PIL Une bibliothèque pour gérer les images en Python. J'ai installé et utilisé Pillow.
$ pip install pillow
Le code qui lit le texte de l'image et le produit en fonction de l'exemple de code est comme ceci.
pyocr_sample.py
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
txt = tool.image_to_string(
Image.open('sample.png'),
lang="jpn+eng",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print txt
La partie de tesseract_layout = 6 n'est pas écrite dans le document, mais c'est la même chose que l'option -psm 6
de la commande de tesseract. C'est une option pour supposer quel type de mise en page analyser. Choisir le bon améliorera considérablement la précision de l'extraction de la boîte. La valeur par défaut est -psm 3
, qui est automatiquement déterminée, mais il est préférable de la spécifier si possible.
Si vous utilisez les données de langage distribuées par tesseract-ocr telles quelles, le résultat est terrible au point que vous vous inquiétez de savoir si elles peuvent être lues correctement. Cependant, si vous utilisez des données linguistiques correctement formées, la précision s'améliorera en conséquence.
Recommended Posts