Estrarre testo da immagini con Python e PyOCR
PyOCR è un wrapper OCR per Python.
Il che vuol dire che nel sistema è necessario avere un OCR installato.
Quelli compatibili sono (da documentazione):
- Libtesseract (Python bindings for the C API)
- Tesseract (wrapper: fork + exec)
- Cuneiform (wrapper: fork + exec)
Una volta che vi siete assicurati di averne uno, installate la libreria con pip:
pip install pyocr
Qui sotto un esempio di codice:
from PIL import Image
import sys
import pyocr.builders
# CONTROLLIAMO SE C'È UN OCR INSTALLATO
# IN CASO NEGATIVO USCIAMO
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("Nessun OCR trovato")
sys.exit(1)
# USIAMO IL PRIMO OCR CHE TROVIAMO NELLA LISTA
tool = tools[0]
print("ORC usato '%s'" % (tool.get_name()))
# LISTIAMO TUTTE LE LINGUE DISPONIBILI
langs = tool.get_available_languages()
print("Lingue disponibili: %s" % ", ".join(langs))
# USIAMO LA PRIMA LINGUA DISPONIBILE
lang = langs[0]
print("Lingua usata '%s'" % lang)
# ESEGUIAMO LA LETTURA DELL'IMMAGINE
txt = tool.image_to_string(
Image.open('img.jpg'),
lang=lang,
builder=pyocr.builders.TextBuilder()
)
print('--------')
print(txt)
Enjoy!
python pip ocr pyocr
Commentami!