所以我终于设法让
Android Tesseract Tools进行编译.一切都按预期工作,除了我不介意某种进展回电.我查看了包装器类和本机包装cpp代码,但没有任何处理进度.
是否有一种简单的方法可以对Tesseract进行某些进展调查?我在Tesseract源代码中达到了顶峰,但作为一个天真地说Java的人,它让我感到害怕.
考虑到Tesseract在进度时间方面的变量,给用户一个spinner并将其称为一天似乎很糟糕.如果是我而且它花了超过30秒没有反馈,我会重试或放弃.
最佳答案 首先,由于OCR过程可以被视为事物的宏观过程中的“长期任务”,因此将其置于异步任务中.诸如I / O,网络或图像处理之类的事情应该放在异步任务中,因为您不希望它在主UI线程上运行.如果用户的规格电话非常低,则需要一些时间,如果将其留在主UI线程上,最终会导致应用程序无响应错误.
关于进度条,您有几个选择.如果您有一个有限的时间限制,例如30秒,那么如果OCR过程快于30秒,则将进度设置为该工作并提前完成.您也可以使用底层的本机代码,但它可能不值得努力……
或者,在我看来,最佳方法是在OCR过程的持续时间内设置一个循环微调器,因为图像可能不同而且你真的不知道需要多长时间.