OCR. Textos en imágenes
Obtención de textos con Pillow
Pillow (anteriormente conocida como PIL - Python Imaging Library) es la biblioteca estándar para el procesamiento de imágenes en Python. Pillow permite realizar tareas como convertir formatos (pasar de PNG a JPEG, WebP, BMP...), manipular imágenes (cambiar tamaño, recortar, rotar y voltear imágenes) y la mejora de imágenes (ajustar brillo, contraste, color y nitidez). También permite la edición de imágenes: aplicar filtros (desenfoque, realce de bordes), añadir texto y dibujar formas geométricas.
De todo esto hablamos en la sección Medios AV (por lo que no voy a incluir aquí enlaces a la documentación de la biblioteca), pero aquí vamos a hablar de una funcionalidad tal vez marginal para esta biblioteca, pero interesante: su colaboración en script orientados a la recuperación de texto en imágenes.
Ahora te supongo dispuesto a obtener texto alguna imagen con la que te interes trabajar, pero con el software ya correctamente instalado, incluyendo tesseract.exe y las bibliotecas PyTesseract y Pillow. Con todo esto preparado vamos a practicar la extracción de texto de una imágen como la siguiente.
Como ves se trata de una imágen que reproduce un documento de la que pretendemos obtener el texto que contiene para visualizarlo por pantalla, para lo que vamos a emplear este script Python
import pytesseract
from PIL import Image
#Es necesario incluir la ruta a Tesseract para trabajar con pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# Cargar la imagen con Pillow
img = Image.open('img/img_txt.jpg')
# Extraer texto
texto = pytesseract.image_to_string(img, lang ='spa')
#Escribir el texto en pantalla
print(texto)
Como ves es un script muy simple en el que, además del módulo pytesseract también usa la bibioteca Pillow, concretamente su módulo básico (from PIL import Image), necesario para cargar la imagen (img = Image.open('img/img_txt.jpg')). Pero fíjate (y es muy importante) que previamente deberemos incluir una instrucción que comunique pytesseract con Tesseract (existen otras opciones, pero esta es la más sencilla). De no hacerlo no funcionará el script y no obtendremos el texto.
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'Te recomiendo que identifiques la ubicación de Tesseract en tu ordenador (será una dirección muy similar a la mía) y la copies al inicio de tus script.
Esta instrucción texto = pytesseract.image_to_string(img, lang ='spa') es clave en este script, ya que emplea la función pytesseract image_to_string() que requiere dos parámetros, la imagen sobre la que trabajar y el idioma a aplicar (recuerda que en la instalación de Tesseract seleccionaste una serie de idiomas para aplicar OCR), que en nuestro caso es el español (lang ='spa'). Ahora resta visualizar el texto print(texto), aunque en una situación real podríamos necesitar alguna mejora de su legibilidad y posteriormente archivarlo en un documento (txt,por ejemplo).
No hay comentarios:
Publicar un comentario
Comenta esta entrada