Leyendo el texto de la imagen

¿Alguna sugerencia sobre la conversión de estas imágenes a texto? Estoy usando pytesseract y está funcionando maravillosamente en la mayoría de los casos, excepto en esto. Lo ideal sería leer estos números exactamente. En el peor de los casos, solo puedo intentar usar PIL para determinar si el número a la izquierda de ‘/’ es un cero. Comienza desde la izquierda y encuentra el primer píxel blanco, luego

introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

from PIL import Image from pytesseract import image_to_string myText = image_to_string(Image.open("tmp/test.jpg"),config='-psm 10') myText = image_to_string(Image.open("tmp/test.jpg")) 

La barra en el medio causa problemas aquí. También he intentado usar la pasta ‘PIL’ para agregar mucho negro adicional a la imagen. Podría haber algunos otros trucos de PIL que podría intentar, pero preferiría no ir por ese camino a menos que tenga que hacerlo.

Intenté usar config = ‘- psm 10’ pero mis 8 aparecían como “:” a veces, y caracteres aleatorios otras veces. Y mis 0’s estaban llegando como nada.

Referencia a: pytesseract no funciona con una imagen de un dígito para el -psm 10

    _____________EDIT_______________ Muestras adicionales:

    introduzca la descripción de la imagen aquí 1BJ2I]

    introduzca la descripción de la imagen aquí DIS

    introduzca la descripción de la imagen aquí 10.I’10

    introduzca la descripción de la imagen aquí 20.I20

    Así que estoy haciendo algunas conversiones de vudú que parecen estar funcionando por ahora. Pero se ve muy propenso a errores:

     def ConvertPPTextToReadableNumbers(text): text = RemoveNonASCIICharacters(text) text = text.replace("I]", "0") text = text.replace("|]", "0") text = text.replace("l]", "0") text = text.replace("B", "8") text = text.replace("D", "0") text = text.replace("S", "5") text = text.replace(".I'", "/") text = text.replace(".I", "/") text = text.replace("I'", "/") text = text.replace("J", "/") return text 

    En última instancia genera:

     ConvertPPTextToReadableNumbers return text = 18/20 ConvertPPTextToReadableNumbers return text = 0/5 ConvertPPTextToReadableNumbers return text = 10/10 ConvertPPTextToReadableNumbers return text = 20/20 

    En general, la mayoría de las herramientas de OCR (como Tesseract) están optimizadas para trabajar con escaneos de alta resolución de texto impreso. No tienen un buen rendimiento en imágenes de baja resolución o pixeladas.

    Dos posibles enfoques aquí son:

    1. Si la fuente, el fondo y el diseño de sus imágenes son completamente predecibles, no necesita Tesseract en absoluto; es solo complicar las cosas Cree una biblioteca de imágenes que represente cada carácter que necesite reconocer, y verifique si partes de la imagen son iguales a la imagen de referencia .

    2. Si esa no es una opción, o si parece demasiado difícil, puede boost la escala de la imagen pixelada usando uno de los algoritmos hq * x . El detalle agregado puede ser suficiente para que Tesseract reconozca a los personajes de manera confiable.