【问题标题】:Tesseract not using path variable正方体不使用路径变量
【发布时间】:2017-10-13 08:35:50
【问题描述】:

为什么我的 Tesseract 实例要求我显式设置数据路径,但不想读取环境变量?

让我澄清一下:运行代码

ITesseract tesseract = new Tesseract();
String result = tesseract.doOCR(myImage);

抛出错误:

Error opening data file ./tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the 
parent directory of your "tessdata" directory.

我已经设置了我的环境变量,即做

echo $TESSDATA_PREFIX returns /usr/share/tessdata/

现在,在我的代码中明确设置路径变量,即:

Itesseract tesseract = new Tesseract();
tesseract.setDatapath("/usr/share/tessdata/");
String result = tesseract.doOCR(myImage);

完美运行。为什么? 我正在使用 Manjaro 17.0.5

【问题讨论】:

    标签: linux tesseract tess4j


    【解决方案1】:

    该库最初设计为使用捆绑在其tessdata 文件夹中的数据文件。在您的情况下,如果您想从标准的 tessdata 目录中读取数据,您需要按如下方式设置数据路径:

    tesseract.setDatapath(System.getenv("TESSDATA_PREFIX"));

    【讨论】:

    • System.getenv 将返回与我已经设置的完全相同的字符串,尽管它没有硬编码。但是,我的问题更多地围绕着“为什么库无法找到自己的 @987654324 @library”,而无需我明确告诉它在哪里看?
    • 默认情况下,tess4j 使用其本地的tessdata 文件夹,而不是 Tesseract 的。它不知道TESSDATA_PREFIX 变量定义的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多