有没有办法在 Tesseract 中指定进度和取消回调?我在 Android 中使用 Tesseract,使用tess-two 项目。
前面已经有一个问题了——Android Tesseract 进度回调。但是,那里的答案暗示这是不可能的。
我还有另一个重要的细节要补充——我检查了源代码并找到了一个名为 的类ETEXT_DESC
,看起来它可以用于此目的。
我的问题是 - 可以ETEXT_DESC
用于进度和取消回调,如果可以,我该如何使用它?
有没有办法在 Tesseract 中指定进度和取消回调?我在 Android 中使用 Tesseract,使用tess-two 项目。
前面已经有一个问题了——Android Tesseract 进度回调。但是,那里的答案暗示这是不可能的。
我还有另一个重要的细节要补充——我检查了源代码并找到了一个名为 的类ETEXT_DESC
,看起来它可以用于此目的。
我的问题是 - 可以ETEXT_DESC
用于进度和取消回调,如果可以,我该如何使用它?
ProgressNotifier
是的,您可以通过实现接口并覆盖方法来获得进度回调onProgressValues
。(在幕后,它使用ETEXT_DESC
您提到的类。)将您的通知对象作为参数提供给TessBaseAPI
构造函数。
stop
您可以使用该方法取消正在进行的 OCR 。
我最近写了一篇关于这个的博客文章。如果遇到问题,请在 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);
接收更新:
@Override
public void onProgressValues(ProgressValues progressValues) {
progressBar.setProgress(progressValues.getPercent());
}