【问题标题】:Tesseract - change language file locationTesseract - 更改语言文件位置
【发布时间】:2011-10-20 12:39:51
【问题描述】:

我正在制作一个 AIR 项目,它需要一些 OCR 功能,所以我决定使用 tesseract(现在我尝试让它在 Windows 上运行)。

我的问题是,不能更改语言文件的位置 - 它总是试图查看我的 Tesseract 安装目录(程序文件 (x86)\Tesseract-OCR\tessdata\mylang.traineddata)

有没有一种方法可以配置 Tesseract 以在我指定的位置查找此文件?例如在与 tesseract.exe 相同的文件夹中。我不想(或者可能无法)使用 AIR 安装程序安装应用程序。 3.0版本和最新的SVN版本都试过了。

谢谢

【问题讨论】:

    标签: c++ air ocr tesseract


    【解决方案1】:

    是的,您可以通过设置 TESSDATA_PREFIX 环境变量,例如:

    导出 TESSDATA_PREFIX=/usr/local/share/

    注意目录路径必须以/结尾。

    【讨论】:

    • 谢谢,我想我需要调整源代码。在程序的每次运行时修改环境变量并不是一个非常优雅的解决方案(只是为了确保用户自上次运行以来没有设置此变量 - 例如通过安装 tesseract)。
    【解决方案2】:

    我建议你不要按 TESSDATA_PREFIX 处理 tessdata 路径。您可以在 init tesseract 中定义 tessdata 路径。如果您在命令行中使用 tesseract.exe,请使用以下语法:

    tesseract.exe  --tessdata-dir  tessdataPath  image.png  output  -l  eng
    

    如果你使用 tesseract::TessBaseApi,在 api.init() init 如下:

    api->Init(tessdataPath, language) //api->Init("C:", "eng")
    

    【讨论】:

      【解决方案3】:

      我已经通过重写 Tesseract 的源代码解决了这个问题(我使用的是 SVN 597)。正如 nguyenq 所说,Tesseract 尝试在 TESSDATA_PREFIX 环境变量设置的路径中查找数据。如果找不到,那么它会做一些我不明白的诡计:)。 因此,如果有人需要 Tesseract 的便携版本(不依赖于 Tesseract 安装),请在第 60 行左右编辑 mainblk.cpp,这是我的版本:

      // remove the stuff that Tesseract does to find the installation path
      /* if (!getenv("TESSDATA_PREFIX")) {
      #ifdef TESSDATA_PREFIX
      #define _STR(a) #a
      #define _XSTR(a) _STR(a)
          datadir = _XSTR(TESSDATA_PREFIX);
      #undef _XSTR
      #undef _STR
      #else
          if (argv0 != NULL) {
            if (getpath(argv0, dll_module_name, datadir) < 0)
      #ifdef __UNIX__
              CANTOPENFILE.error("main", ABORT, "%s to get path", argv0);
      #else
              NO_PATH.error("main", DBG, NULL);
      #endif
          } else {
            datadir = "./";
          }
      #endif
        } else {
          datadir = getenv("TESSDATA_PREFIX");
        }*/
        datadir = "./"; // look for config things in the same folder as the executable.
      

      现在你可以在“tesseract 可执行位置”\tessdata 目录中打包东西

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-11
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多