2012-02-20 13 views
12

Estoy construyendo una aplicación de iOS (tome una imagen y ejecute OCR en ella) utilizando Tesseract (una biblioteca OCR) y está funcionando muy bien con números bien escritos y caracteres (utilizando fuentes habituales).Pantalla de 7 segmentos OCR

El problema que tengo es que si lo pruebo en una pantalla de 7 segmentos, da muy, muy malos resultados.

Entonces mi pregunta es: ¿Alguien sabe cómo puedo abordar este problema? ¿Hay alguna manera de que Tesseract reconozca a estos personajes?

+3

Lo curioso es que (independientemente de este paquete específico), es mucho más fácil identificar 7 caracteres de segmento - procesamiento de imágenes simple - detección de bordes y luego encontrar las longitudes y direcciones te lleva a la mitad – Ofir

Respuesta

9

Yo también tuve una gran dificultad para hacer que Tesseract reconozca los dígitos de las imágenes de las pantallas LCD.

que tuvieron cierto éxito marginal mediante el procesamiento previo de las imágenes con ImageMagick para superponer una copia de la imagen en sí misma con un ligero desplazamiento vertical para rellenar los huecos entre los segmentos:

$ composite -compose Multiply -geometry +0+3 foo.tif foo.tif foo2.png 

En el final Sin embargo, mi salvador fue el "carácter siete segmentos reconocimiento óptico de" binario: http://www.unix-ag.uni-kl.de/~auerswal/ssocr/

Muchas gracias al autor, Erik Auerswald, para este código!

+0

¿Cómo ejecutar ssocr en iOS? – phnmnn

+0

¿Cómo lo usaste en Android? –

2

No he intentado con OCR la pantalla de 7 segmentos, pero sospecho que el problema podría deberse a que los caracteres no están conectados a los componentes. Tesseract no maneja bien las fuentes desconectadas de mi experiencia.

La erosión simple (preprocesamiento de imágenes) podría ayudar conectando segmentos, pero tendría que probarlo y jugar con el tamaño del núcleo para evitar demasiada distorsión.

+0

Sí, lo sé. Intenté colorear los píxeles yo solo para probar el OCR en la imagen (con los dígitos conectados) y todavía no funcionó. Probablemente porque la fuente es extraña, así que estoy tratando de trabajar en la fuente. Thx para su respuesta anw :) – Karim

+2

Luego, entrene tesseract usando esa fuente. Probablemente sea mejor utilizar fuentes después de segmentos de conexión, pero será mejor que intente ambas (entrene con el original y las fuentes conectadas) para ver cuál es mejor. –