0
爲什麼我的Tesseract實例要求我明確設置我的數據路徑,但不想讀取環境變量?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
System.getenv只返回我已經設置完全相同的字符串雖然,它不是硬編碼的。但是,我的問題圍繞着「爲什麼圖書館無法找到自己的」共享庫「而不必明確告訴它在哪裏看? –
默認情況下,tess4j使用其本地'tessdata'文件夾,而不是Tesseract的。它不知道由'TESSDATA_PREFIX'變量定義的路徑。 – nguyenq