安卓 Tesseract 进度回调

4
所以,我终于成功编译了Android Tesseract Tools。一切都按预期工作,除了我希望有某种形式的进度回调。我查看了包装类和本地封装的cpp代码,但没有处理进度的内容。
是否有一种简单的方法来轮询Tesseract以获取某种形式的进度?我瞥了一眼Tesseract源代码,但作为一个纯粹说Java语言的人,它让我感到恐惧。
考虑到Tesseract在进度时间方面的可变性,给用户一个旋转图标并结束是不好的。如果是我,如果超过30秒没有反馈,我会重试或放弃。

现在有一个Java接口:https://rmtheis.wordpress.com/2014/12/17/receiving-ocr-progress-updates-when-using-tesseract-on-android/ - rmtheis
1个回答

2
首先,由于OCR过程可以被视为“长时间运行的任务”,因此将其放入异步任务中。像I/O、网络或图像处理这样的任务应该放在异步任务中,因为您不希望它们在主UI线程上运行。如果用户使用的是配置较低的手机,如果您将其留在主UI线程上,则需要一些时间,最终会导致应用程序未响应错误。
关于进度条,您有几个选择。如果您有一个固定的时间限制,例如30秒,那么将进度设置为在30秒内完成,如果OCR过程比30秒快,则提前完成。您还可以利用底层本机代码,但这可能不值得努力...
另外,在我看来,最佳方法是为OCR过程的持续时间设置一个圆形旋转器,因为图像可能是不同的,而且您真的不知道需要多长时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接