Devolución de llamada de progreso de Android Tesseract

Así que finalmente logré obtener el Herramientas de Android Teseracto compilar. Todo funciona como se esperaba, excepto que no me importaría algún tipo de devolución de llamada de progreso. Busqué en la clase contenedora y el código cpp de envoltura nativa, pero no había nada relacionado con el progreso.

¿Hay una manera fácil de sondear Tesseract para algún tipo de progreso? Alcancé el código fuente de Tesseract, pero como una persona que habla Java de forma nativa, me asusta.

Teniendo en cuenta lo variable que es Tesseract en términos de tiempo de progreso, parece malo darle al usuario una hilandero y llámalo un día. Si fuera yo y tomara más de 30 segundos sin comentarios, lo volvería a intentar o me daría por vencido.

preguntado el 03 de mayo de 12 a las 08:05

Hay una interfaz Java para esto ahora: rmtheis.wordpress.com/2014/12/17/… -

1 Respuestas

En primer lugar, dado que el proceso de OCR se puede considerar como una "tarea de ejecución prolongada" en el gran escenario de las cosas, colóquelo en una tarea asíncrona. Cosas como E/S, red o procesamiento de imágenes deben colocarse en una tarea asíncrona, ya que no desea que esto se ejecute en el subproceso principal de la interfaz de usuario. Si un usuario tiene un teléfono con especificaciones realmente bajas, tomará algún tiempo y eventualmente causará un error de aplicación que no responde si lo deja en el subproceso principal de la interfaz de usuario.

Con respecto a las barras de progreso, tiene algunas opciones. Si tiene un límite de tiempo finito, como 30 segundos, configure el progreso para trabajar hasta eso y finalice antes si el proceso de OCR es más rápido que 30 segundos. También puede aprovechar el código nativo subyacente, pero probablemente no valga la pena el esfuerzo...

Alternativamente, y el enfoque óptimo en mi opinión, configure una rueda circular para la duración del proceso de OCR, ya que las imágenes pueden ser diferentes y realmente no tiene idea de cuánto tiempo llevará.

contestado el 04 de mayo de 15 a las 09:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.