2

有没有办法在 Tesseract 中指定进度和取消回调?我在 Android 中使用 Tesseract,使用tess-two 项目

前面已经有一个问题了——Android Tesseract 进度回调。但是,那里的答案暗示这是不可能的。

我还有另一个重要的细节要补充——我检查了源代码并找到了一个名为 的类ETEXT_DESC,看起来它可以用于此目的。

我的问题是 - 可以ETEXT_DESC用于进度和取消回调,如果可以,我该如何使用它?

4

1 回答 1

3

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());
}
于 2015-05-04T14:19:57.163 回答