es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Necesito ayuda para encontrar la configuración correcta de Pytesseract para que pueda reconocer este texto.

Así que estoy haciendo un script donde necesito poder reconocer texto de este tipo de imágenes [1][2], específicamente el texto “Curse of Binding” y “Looting I”.
Soy nuevo en Pytesseract y C2V, así que realmente no sé cómo debería editar las imágenes. El siguiente código no me da el resultado que quiero.

import pytesseract
import cv2

pytesseract.pytesseract.tesseract_cmd = "C:\Users\guilh\AppData\Local\Programs\Tesseract-OCR\tesseract.exe"

image = cv2.imread('trades/1.png')

text = pytesseract.image_to_string(image, lang='mc')
print(result)

¡Gracias de antemano!

[1] – https://i.stack.imgur.com/0fNhM.png

[2] – https://i.stack.imgur.com/J71v6.png

Edit: el lenguaje “mc” es una fuente personalizada para la del juego Minecraft.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mejorar el reconocimiento de texto en las imágenes dadas, puedes probar los siguientes enfoques:

    1. Preprocesamiento de la imagen: Aplica algunas técnicas de procesamiento de imágenes para mejorar el texto y eliminar cualquier ruido o parte no deseada de la imagen. Algunas técnicas comunes incluyen umbralización, erosión, dilatación y detección de contornos.
    2. Recorte de la región de interés: Dado que el texto se encuentra en una región específica de la imagen, intenta recortar esa región y pasarla a Tesseract para obtener un mejor reconocimiento.

    3. Cambio de los parámetros de configuración de Tesseract: Ajusta los parámetros de configuración de Tesseract para mejorar sus capacidades de OCR. Por ejemplo, puedes intentar cambiar el modo de segmentación de página, el modo del motor OCR o especificar una lista blanca de caracteres a reconocer.

    Aquí tienes un fragmento de código actualizado con algunas de estas mejoras:

    import pytesseract
    import cv2
    
    pytesseract.pytesseract.tesseract_cmd = "C:\\Users\\guilh\\AppData\\Local\\Programs\\Tesseract-OCR\\tesseract.exe"
    
    # lee la imagen y recorta la región de interés
    imagen = cv2.imread('trades/1.png')
    roi = imagen[32:46, 96:180]
    
    # aplica algunas técnicas de procesamiento de imágenes para mejorar el texto
    gris = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
    gris = cv2.threshold(gris, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
    gris = cv2.erode(gris, None, iterations=1)
    gris = cv2.dilate(gris, None, iterations=1)
    
    # reconoce el texto usando Tesseract y especifica la fuente personalizada
    texto = pytesseract.image_to_string(gris, lang='mc', config='--psm 13')
    print(texto)
    

    Este código recorta la región que contiene el texto, aplica algunas técnicas de procesamiento de imágenes para mejorarlo y luego lo pasa a Tesseract para el reconocimiento con la fuente personalizada especificada. Es posible que necesites ajustar los parámetros caso por caso para obtener los mejores resultados.

Comments are closed.