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.

Dificultad para detectar dígitos con Tesseract.

Estoy teniendo dificultades para detectar texto en el siguiente tipo de imagen:

Parece que tesseract tiene dificultades para distinguir los números de los diagramas. Y mi objetivo es encontrar todos los dígitos y su ubicación.

A partir de esta imagen, ejecuto el siguiente código que se supone que me da rectángulos alrededor del texto encontrado:

import cv2
import pytesseract
from pytesseract import Output
import numpy as np

pytesseract.pytesseract.tesseract_cmd = r’C:\Program Files\Tesseract-OCR\tesseract’

img = cv2.imread(‘Temp/VE_cropped.png’)

kernel = np.ones((2,2),np.uint8)

img_processed = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_processed = cv2.medianBlur(img_processed,3)
img_processed = cv2.threshold(img_processed, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
img_processed = cv2.dilate(img_processed, kernel, iterations = 1)

dict_wordsDetected = pytesseract.image_to_data(img_processed, output_type=Output.DICT)
img_processed = cv2.cvtColor(img_processed, cv2.COLOR_GRAY2RGB)

n_boxes = len(dict_wordsDetected[‘text’])
for i in range(n_boxes):
(x, y, w, h) = (dict_wordsDetected[‘left’][i]
, dict_wordsDetected[‘top’][i]
, dict_wordsDetected[‘width’][i]
, dict_wordsDetected[‘height’][i])
img_processed = cv2.rectangle(img_processed, (x – 10, y – 10), (x + w + 10, y + h + 10), (0, 0, 255), 2)
cv2.imshow(“procesado”, img_processed)
cv2.waitKey(0)

Lo que nos da este resultado:

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el código que proporcionaste está logrando detectar bien el texto en la imagen. Sin embargo, no es capaz de distinguir entre los números y los diagramas. Para mejorar la precisión de la detección de texto, es posible que desees considerar el preprocesamiento de la imagen antes de ejecutar el código. Esto podría incluir técnicas como umbralización, difuminado o detección de bordes para ayudar a aislar el texto de los diagramas. Además, es posible que desees considerar el uso de una biblioteca de OCR diferente, como la API de Visión de Google o la API de Computer Vision de Microsoft, que pueden ser más adecuadas para este tipo de tarea.

Comments are closed.