Seguramente en algún momento has necesitado extraer un texto que aparece en una imagen y para ello has tenido que teclearlo tú mismo directamente. Esto puede no ser un problema en el caso de textos cortos o frases breves, pero cuando los textos son más extensos puede llegar a resultar agotador y engorroso. Pues aquí te traigo una posible solución a este problema y te enseñaré como obtener un texto de un imagen utilizando Python.

Para ello utilizaremos Tesseract que es una herramienta de reconocimiento óptico de caracteres para Python, o sea, que este va a reconocer y leer el texto que tiene la imagen; también utilizaremos OpenCV que es una librería de código abierto para Computer Vision (Visión de Computadora), aprendizaje automático y para el procesamiento de imágenes.

De no tener Python instalado y no saber cómo hacerlo te sugiero que leas el siguiente artículo: StormGain ganando dinero en Automático

Instalación de Tesseract

Primero nos dirigiremos al siguiente link y descargaremos Tesseract:

https://github.com/UB-Mannheim/tesseract/wiki

Aquí debemos descargar la versión 64bits para Windows.

Pues bien, después de descargar vamos ejecutarlo como administrador e instalaremos el archivo como se instala cualquier programa de Windows. Cuando salga la opción Selección de componentes marcaremos lo que dice Additional language data(download) para también obtener el idioma español ya que por defecto viene en inglés.

Después tendremos que agregar Tesseract como Variable de Entorno de la siguiente forma:

  1. En Equipo damos click derecho Propiedades.
  2. Configuración Avanzada del sistema.
  3. Variables de entorno.
  4. En Variables de Entorno damos doble click en Path.
  5. Tocamos en Nuevo, agregamos la ruta donde se instaló Tesseract, damos aceptar y listo.

Para saber que Tesseract está bien instalado abrimos CMD (win+R) y escribimos lo siguiente:

tesseract --versión

Damos Enter y te debe salir de la siguiente forma:

Instalación de pytesseract y OpenCV

Cuando terminemos con lo anterior a través del CMD instalaremos las siguientes librerías.

La primera será pytesseract que es la versión de Tesseract para Python y se instala de la siguiente forma:

pip install pytesseract

La segunda librería será OpenCV:

pip install opencv_python

Para confirmar que están instaladas correctamente escribimos lo siguiente en CMD:

pip list
Les aparecerá una lista con todas las librerías instaladas y verificaran que están las dos anteriores.

Código

Ahora abriremos Visual Studio Code y creamos un nuevo archivo:

A este nuevo archivo le pondremos el nombre que queramos con la extensión .py y lo guardamos en la ubicación que estemos trabajando.

En el archivo .py que creamos hacemos lo siguiente:

Primero importaremos los paquetes que vamos a necesitar:

import pytesseract as tess
import cv2

Con la siguiente línea de código le decimos a pytesseract donde instalamos Tesseract:

tess.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

Ahora abrimos la imagen de la cual vamos a extraer el texto con el método imread de OpenCV de la siguiente forma:

my_image = cv2.imread('G:\Proyectos\textoimagen.jpg')

Entre comillas simples pones la ruta donde se encuentra su imagen.

Utilizaremos la función image_to-string de pytesseract, la cual se encarga de extraer el texto de la imagen que seleccionamos anteriormente:

txt = tess.image_to_string(my_image)

Para guardar este texto en un archivo .txt hacemos lo siguiente:

my_file = open('resultado.txt', 'w')
my_file.write(txt + '\n')
my_file.close()

Después le damos Run Code y listo en la misma dirección que esta la foto aparecerá el .txt con el texto de la imagen.

Espero que te haya resultado útil este artículo de como obtener un imagen de un texto utilizando Python, para el próximo traeré más contenido como este. Cualquier duda deja tu comentario y te ayudaremos . Un Saludo.

Por Selenita

Programadora y amante de la Tecnología.....

Deja una respuesta

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