为什么我的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
答案 0 :(得分:1)
该库最初设计为使用其tessdata
文件夹中捆绑的数据文件。在您的情况下,如果要从标准tessdata
目录中读取,则需要按如下方式设置数据路径:
tesseract.setDatapath(System.getenv("TESSDATA_PREFIX"));