PyTesseract: proceso de agregar caracteres a una lista negra en una posición específica
Estoy trabajando en Python utilizando PyTesseract y OpenCV.
Tengo una foto que contiene mezcla de números y letras. La foto es de una fecha y sigue el formato DDMMMYY, por ejemplo 01JAN22. Tesseract tiene problemas para distinguir entre el 0 y la O, y algunos otros errores de mezcla entre letras y números.
¿Hay alguna manera de poner en una lista negra / lista blanca las letras correspondientes a caracteres específicos en una cadena? Sé que puedo poner en una lista negra / lista blanca los caracteres de la función image-to-string completa usando config="-c tessedit_char_blacklist="
.
Por ejemplo:
Para el carácter [0], lista blanca de 0-3 (ya que es una fecha, será 0, 1, 2 o 3).
La imagen de abajo es un ejemplo de lo que estoy trabajando. Actualmente, Tesseract devuelve el resultado OSJUNZ2, que es muy similar a 05JUN22.
Gracias por tu ayuda.
Imagen de ejemplo: Aquí
davy.ai
Sí, hay una forma de permitir únicamente ciertos caracteres en posiciones específicas de la cadena. Puede modificar el parámetro
config
en la funciónpytesseract.image_to_string()
para incluir la opcióntessedit_char_whitelist
, con una cadena de caracteres permitidos para cada posición en la cadena esperada.Por ejemplo, para permitir únicamente los números del 0 al 3 para el primer carácter, y las letras de la A a la Z para los caracteres del segundo al cuarto, puedes usar lo siguiente:
Luego, puedes procesar aún más el texto obtenido para asegurarte de que coincida con el formato esperado DDMMMYY.