Python – OCR sobre una imagen

Veamos un ejemplo sencillo en Python que realiza OCR sobre una imagen. Leer el texto que hay en una imagen y almacenarlo en un fichero TXT.

Python tutorial

Objetivo ejemplo

Vamos avanzando en la pequeña herramienta que estamos haciendo, para trabajar la extracción de información (texto e imágenes de ficheros PDF o fotos).

Este apartado, tratará la interpretación de texto que hay en una imagen, OCR (optical character recognition). Hacemos una foto a un documento, y luego con este script, extraer el texto al que se le ha hecho la foto, a un fichero TXT.

Importar librerías

Necesitaremos dos librerías: Pillow i pytesseract

La primera la utilizaremos para trabajar con la imágen, y la segunda será la encargada de hacer el reconocimiento del texto en la imagen. Para instalarlas:

pip install pillow pytesseract

El código

El ejemplo que realiza la tarea:

from PIL import Image
import pytesseract

image_path = 'imatge.jpg'
output_file = 'output_ocr.txt'

# Abrir imagen con Pillow
image = Image.open(image_path)

# Utilizar pytesseract para interpretar texto de la imagen (OCR)
text = pytesseract.image_to_string(image, lang='es')  # Especifica idioma

# Guardar el texto interpretado a un fichero de texto.
with open(output_file, 'w') as file:
     file.write(text)

De esta manera, se extrae el texto de una imagen, pero veréis que con muchos saltos de lineas donde no tocan. Dicho de otra manera, deberéis retocar el texto.

Problema editor

Mis pruebas las hacía en PyCharm Community, el editor de Python, y me daba muchos problemas. Mostraba un error a la hora de ejecutar el script. El error era que no encontraba la librería «tesseract».

Después de muchas pruebas, decidí ejecutarlo desde fuera del editor. Lo probé en la consola, y funcionó a la primera. Entiendo que hay que configurar las librerías en el editor, pero decidir no perder tiempo.

Ejecutáis en la consola la siguiente orden, y comprobaréis que funciona:

python3 main.py

Espero que os sea de utilidad esta artículo de python de cómo hacer OCR en una imagen.

Més información