¿Cómo extraer texto de imágenes con Python?

OCR (reconocimiento óptico de caracteres) es el proceso de conversión electrónica de imágenes digitales en texto codificado por máquina. Donde la imagen digital es generalmente una imagen que contiene regiones que se asemejan a los caracteres de un idioma. OCR es un campo de investigación en reconocimiento de patrones, inteligencia artificial y visión artificial. Esto se debe al hecho de que los OCR más nuevos se entrenan proporcionándoles datos de muestra que se ejecutan sobre un algoritmo de aprendizaje automático. Esta técnica de extracción de texto de imágenes se realiza generalmente en entornos de trabajo donde se tiene la certeza de que la imagen contendría datos de texto. En este artículo, aprenderemos a extraer texto de imágenes. Estaríamos utilizando el lenguaje de programación python para hacerlo. 

Para permitir que nuestro programa python tenga capacidades de reconocimiento de caracteres, estaríamos haciendo uso de la biblioteca pytesseract OCR. La biblioteca podría instalarse en nuestro entorno de python ejecutando el siguiente comando en el intérprete de comandos del sistema operativo:

pip install pytesseract

La biblioteca ( si se usa en el sistema operativo Windows ) requiere que el binario tesseract.exe también esté presente para una instalación adecuada de la biblioteca. Durante la instalación del ejecutable antes mencionado, se nos pedirá que especifiquemos una ruta para él. Esta ruta debe recordarse, ya que se utilizará más adelante en el código. Para la mayoría de las instalaciones, la ruta sería C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe. 

Explicación:

En primer lugar, importamos el módulo Imagen de la biblioteca PIL (para abrir una imagen) y luego el módulo pytesseract de la biblioteca pytesseract (para la extracción de texto). Luego, después de definir la variable path_to_tesseract que contiene la ruta al binario ejecutable ( tesseract.exe ) que instalamos en el requisito previo (esta ruta dependería de la ubicación donde está instalado el binario). Luego definimos la variable image_path que contiene la ruta al archivo de imagen. Esta ruta se pasa a la función open() para crear un objeto de imagen a partir de nuestra imagen. Después de esto, asignamos a la variable pytesseract.tesseract_cmd la ruta almacenada en path_to_tesseractvariable (esto sería usado por la biblioteca para encontrar el ejecutable y usarlo para la extracción). Después de lo cual pasamos el objeto de imagen ( img ) a la función image_to_string() . Esta función toma como argumento un objeto de imagen y devuelve el texto reconocido en su interior. Al final, mostramos el texto que se encontró en la imagen usando text[:-1] (debido a un carácter adicional (^L) que se agrega de manera predeterminada).

Ejemplo 1:

Imagen para demostración:

Una imagen de texto blanco con fondo negro

A continuación se muestra la implementación completa:

Python3

from PIL import Image
from pytesseract import pytesseract
  
# Defining paths to tesseract.exe
# and the image we would be using
path_to_tesseract = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image_path = r"csv\sample_text.png"
  
# Opening the image & storing it in an image object
img = Image.open(image_path)
  
# Providing the tesseract executable
# location to pytesseract library
pytesseract.tesseract_cmd = path_to_tesseract
  
# Passing the image object to image_to_string() function
# This function will extract the text from the image
text = pytesseract.image_to_string(img)
  
# Displaying the extracted text
print(text[:-1])

Producción:

ahora los niños afirman que después de lo mismo hace tanto tiempo

apuntar correr tomar llamar juntos pocos ser caminar dar

Ejemplo 2:

Imagen para demostración:

Código:

Python3

from PIL import Image
from pytesseract import pytesseract
  
# Defining paths to tesseract.exe 
# and the image we would be using
path_to_tesseract = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image_path = r"csv\d.jpg"
  
# Opening the image & storing it in an image object
img = Image.open(image_path)
  
# Providing the tesseract 
# executable location to pytesseract library
pytesseract.tesseract_cmd = path_to_tesseract
  
# Passing the image object to 
# image_to_string() function
# This function will
# extract the text from the image
text = pytesseract.image_to_string(img)
  
# Displaying the extracted text
print(text[:-1])

Producción:

Geeksforgeeks

Publicación traducida automáticamente

Artículo escrito por VasuDev4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *