OCR: Cómo mejorar la precisión - bibliotecas existentes para la eliminación no textual 'muebles', formas, etc que no induzca a OCR?

StackOverflow https://stackoverflow.com/questions/2448106

Pregunta

Quiero eliminar rectángulos, etc que encierran el texto de una imagen de pantalla en, de modo que pueda realizar el reconocimiento óptico de caracteres para obtener el texto exacto de la pantalla.

Antecedentes:

Me hace esto para extraer datos de una aplicación antigua para su uso con otras aplicaciones. Esta es la única manera de llegar a estos datos como archivos asociados están en un formato cerrado, patentado, binario.

Me va a utilizar AutoItScript para conducir la aplicación para mostrar los datos en su interfaz de usuario, entonces yo captura de pantalla esto y alimentar esta a tesseract.

Ya he tenido cierto éxito en la automatización de la interfaz de usuario, y han sido capaces de utilizar Tesseract para obtener el texto plano ASCII fuera del mapa de bits.

Hay varios artículos foro AutoItScripr discuten su uso con Tesseract / OCR pero no específicamente para mi pregunta. http://www.autoitscript.com/forum/index.php? s = 6c32c3ece12756e635a619cdf175eff9 y ShowForum = 2

¿Qué tengo que hacer

Hay, rectángulos delgados de 1 píxel de ancho que encierran estrechamente algún texto, cuando se alimenta a TESSERACT, se los ve como yo por ejemplo para una línea verticle del rectángulo.

¿Alguna idea sobre cómo eliminar los rectángulos, o las mejores prácticas?

Me estoy preguntando si hay un conjunto de herramientas de línea de comandos basada genérica para sobrescribir rectángulos, por ejemplo, en archivos .png. Entonces podría pasar el .png a través de este, luego pasarlo a Tesseract.

Detalles sobre la liberación Tesseract / configuración que he utilizado son los siguientes:

Vaya aquí: http://code.google.com/p/ tesseract-ocr / descargas / lista de - Por el carácter genérico Inglés básico establecido para obtener Tesseract en marcha y reconocer el texto de mapa de bits en texto ASCII, utilice Tesseract-2.00.eng.tar.gz (versión actualizada al momento de la escritura es: "los datos del inglés para Tesseract (2,00 y hasta) jun 2007 989 KB 84845" )

preguntas relacionadas ya he mirado en el desbordamiento de la pila

En estos, mi pregunta no es completamente contestadas o una solución comercial se está vendiendo. No quiero considerar una solución comercial en esta etapa.

¿Fue útil?

Solución

Hay probablemente no va a ser un país libre de la solución de plataforma para esto, pero codificación de su propio no debe ser demasiado difícil, ya que es probablemente seguro asumir que un rectángulo nunca será un carácter válido en el alfabeto de su fuente y puede, por tanto, ser eliminado con seguridad. También ayuda a que todas sus fronteras rectángulo son exactamente un píxel de ancho.

Así que buscar una línea horizontal contigua que se une a otro, línea paralela de la misma longitud de exactamente dos líneas verticales. Repetir la búsqueda hasta que encuentre todos los rectángulos en la imagen a continuación, hacen todos ellos transparente con Graphics.DrawRectangle y Pens.Transparent . Hacen que no sea un rectángulo transparente hasta que haya terminado la búsqueda de lo contrario corre el riesgo eliminando partes de rectángulos superpuestos antes de que los has encontrado. Esto es sólo una sugerencia de arranque, no he implementado o depurado este algoritmo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top