4

所以我终于设法让Android Tesseract Tools进行编译。一切都按预期工作,除了我不介意某种进度回调。我查看了包装类和本机包装 cpp 代码,但没有任何处理进度的内容。

有没有一种简单的方法来轮询 Tesseract 以获得某种进展?我在 Tesseract 源代码上达到了顶峰,但作为一个会说 Java 的人,这让我感到害怕。

考虑到 Tesseract 在进度时间方面的可变性,给用户一个微调器并收工似乎很糟糕。如果是我,超过 30 秒没有反馈,我会重试或放弃。

4

1 回答 1

2

首先,由于 OCR 过程可以被视为大场景中的“长时间运行的任务”,因此将其放入异步任务中。诸如 I/O、网络或图像处理之类的东西应该放在异步任务中,因为您不希望它在主 UI 线程上运行。如果用户的手机规格非常低,如果您将其留在主 UI 线程上,这将需要一些时间并最终导致应用程序无响应错误。

关于进度条,您有几个选择。如果您有一个有限的时间限制,例如 30 秒,则将进度设置为达到该时间,如果 OCR 过程快于 30 秒,则提前完成。您还可以利用底层的本机代码,但它可能不值得付出努力......

或者,在我看来,最佳方法是在 OCR 过程中设置一个圆形微调器,因为图像可能会有所不同,而且您真的不知道需要多长时间。

于 2012-06-04T13:18:05.183 回答