Tesseract不使用路径变量

时间:2017-10-13 08:35:50

标签: linux tesseract tess4j

为什么我的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

1 个答案:

答案 0 :(得分:1)

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

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