Python | Usando PIL ImageGrab y PyTesseract

ImageGrab y PyTesseract

ImageGrab es un módulo de Python que ayuda a capturar el contenido de la pantalla. PyTesseract es una herramienta de reconocimiento óptico de caracteres (OCR) para Python. Juntos se pueden usar para leer el contenido de una sección de la pantalla.

Instalación –

Pillow (una versión más nueva de PIL)

pip install Pillow

PyTesseract

pip install pytesseract

Aparte de esto, se debe instalar un ejecutable de tesseract .

Implementación de código

Las siguientes funciones se utilizaron principalmente en el código:

pytesseract.image_to_string(image, lang=**language**) – Toma la imagen y busca palabras del idioma en su texto.

cv2.cvtColor(imagen, **conversión de color**): se usa para hacer que la imagen sea monocromática (usando cv2.COLOR_BGR2GRAY).

ImageGrab.grab(bbox=**Coordenadas del área de la pantalla que se va a capturar**): se utiliza para capturar repetidamente (usando un bucle) una parte específica de la pantalla.

Los objetivos del código son:

  1. Usar un bucle para capturar repetidamente una parte de la pantalla.
  2. Para convertir la imagen capturada a escala de grises.
  3. Utilice PyTesseract para leer el texto que contiene.

Código: código de Python para usar ImageGrab y PyTesseract

# cv2.cvtColor takes a numpy ndarray as an argument
import numpy as nm
  
import pytesseract
  
# importing OpenCV
import cv2
  
from PIL import ImageGrab
  
  
def imToString():
  
    # Path of tesseract executable
    pytesseract.pytesseract.tesseract_cmd ='**Path to tesseract executable**'
    while(True):
  
        # ImageGrab-To capture the screen image in a loop. 
        # Bbox used to capture a specific area.
        cap = ImageGrab.grab(bbox =(700, 300, 1400, 900))
  
        # Converted the image to monochrome for it to be easily 
        # read by the OCR and obtained the output String.
        tesstr = pytesseract.image_to_string(
                cv2.cvtColor(nm.array(cap), cv2.COLOR_BGR2GRAY), 
                lang ='eng')
        print(tesstr)
  
# Calling the function
imToString()

Producción

El código anterior se puede utilizar para capturar una determinada sección de la pantalla y leer el contenido de texto de la misma.

Lea acerca de otras bibliotecas utilizadas en el código

Numpy
OpenCV(cv2)

Publicación traducida automáticamente

Artículo escrito por RuturajM 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 *