有没有办法在Tesseract中指定进度并取消回调?我在Android中使用Tesseract,使用tess-two project。
之前已有一个问题 - Android Tesseract progress callback。然而,那里的答案暗示它是不可能的。
我要添加另一个重要细节 - 我检查了源代码并找到了一个名为ETEXT_DESC
的类,看起来它可以用于此目的。
我的问题是 - 可以ETEXT_DESC
用于进度并取消回调,如果可以,我该如何使用?
答案 0 :(得分:3)
是的,您可以通过实施ProgressNotifier
接口并覆盖onProgressValues
方法来获得进度回调。 (在幕后,它使用您提到的ETEXT_DESC
类。)将通知程序对象作为参数提供给TessBaseAPI
构造函数。
您可以使用stop
方法取消正在进行的OCR。
我最近写了一篇blog post。如果您遇到问题,请在tess-two项目上打开一个新问题。
修改强>
来自博文:
进度百分比可用于温度计式的ProgressBar。在识别过程中,可以在输入图像的显示顶部绘制边界框。
实现此回调需要使用TessBaseAPI对象的替代构造函数和ProgressNotifier接口的实现:
注册接收更新:
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar1);
// Create the TessBaseAPI object, and register to receive OCR progress updates
TessBaseAPI baseApi = new TessBaseAPI(this);
baseApi.getHOCRText(myImage);
接收udpates:
@Override
public void onProgressValues(ProgressValues progressValues) {
progressBar.setProgress(progressValues.getPercent());
}