【问题标题】:Export HOCR output for tesseract OCR in android在 android 中导出 tesseract OCR 的 HOCR 输出
【发布时间】:2014-01-21 02:58:16
【问题描述】:

我尝试使用tess-two,它是适用于 Android 的 Tesseract 工具的一个分支。我想在 tesseract 中打开hocr 输出,从这个link,我尝试将变量tessedit_create_hocr 设置为true,但我在输出中看不到hocr。这是我的尝试:

  baseApi.init(FileUtil.getAppFolder(), "eng", TessBaseAPI.OEM_TESSERACT_CUBE_COMBINED);
  baseApi.setVariable("tessedit_create_hocr", "1")
  baseApi.setImage(bitmap);
  String recognizedText = baseApi.getUTF8Text();

有人告诉hocr 输出应该在配置文件夹或包含图像的文件夹中,但我什么也没看到。任何我不知道如何配置 hocr 输出的文件名和位置。

另一件事:有没有办法将配置文件应用到适用于 Android 的 Tesseract 工具中?我将配置文件放入 tessdata/config 文件夹,但没有任何反应。如何告诉tesseract 应该阅读这些配置文件?看来他们没有足够的文件来支持 android。

更新:感谢@nguyenq,现在我可以得到HOCR 的数据了。这是我的尝试:

  jstring Java_com_googlecode_tesseract_android_TessBaseAPI_nativeGetHOCRText(JNIEnv *env,
                                                                        jobject thiz,    jint page) {

 native_data_t *nat = get_native_data(env, thiz);

 char *text = nat->api.GetHOCRText(page);

 jstring result = env->NewStringUTF(text);

 free(text);

 return result;
 }

【问题讨论】:

    标签: android ocr tesseract


    【解决方案1】:

    显然,tess-two 没有实现所有的TessBaseAPI,因为它不支持原生的GetHOCRText 方法。您可能必须自己扩展包装器才能访问所需的功能。

    配置文件用于命令行执行。或者,您可以通过公开的 API 方法 setVariable 设置必要的变量。

    【讨论】:

    • 谢谢,我试试看。
    • 我认为 tess-two 现在支持 GetHOCRText —— 特别是在 TessBaseAPI.java 的第 729 行定义了 public String getHOCRText(int page)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多