Quiero reconocer los dígitos de una tarjeta de crédito. Para empeorar las cosas, no se garantiza que la imagen de origen sea de alta calidad. El OCR se realizará a través de una red neuronal, pero ese no debería ser el tema aquí.Preparar imagen compleja para OCR
El problema actual es el preprocesamiento de la imagen. Como las tarjetas de crédito pueden tener fondos y otros gráficos complejos, el texto no es tan claro como con el escaneo de un documento. Hice experimentos con detección de bordes (Canny Edge, Sobel), pero no fue tan exitoso. También calcular la diferencia entre la imagen en escala de grises y una borrosa (como se indica en Remove background color in image processing for OCR) no condujo a un resultado de OCRable.
Creo que la mayoría de los enfoques fallan porque el contraste entre un dígito específico y su fondo no es lo suficientemente fuerte. Probablemente hay una necesidad de hacer una segmentación de la imagen en bloques y encontrar la mejor solución de preprocesamiento para cada bloque.
¿Tiene alguna sugerencia sobre cómo convertir la fuente en una imagen binaria legible? ¿La detección de bordes es el camino a seguir o debería seguir con el umbral de color básico?
Este es un ejemplo de un enfoque de escala de grises-umbral (donde obviamente no estoy feliz con los resultados):
imagen original:
imagen en escala de grises:
Thresholded image :
Gracias por cualquier consejo, Valentin
Dado que hay muy poco contraste, probaría la detección de bordes, como usted mencionó. –