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);
WORKS PERFECTLY。どうして? 私はManjaroを使用しています。17.0.5
System.getenvはちょうどしかし、私はすでに設定しているまったく同じ文字列を返しますしかし、私の質問は、 "なぜライブラリは自分自身の' share'ライブラリを見つけることができないのですか?明示的にそれをどこに見せなくてもいいのですか? –
デフォルトでは、tess4jはTesseractのものではなく、ローカルの 'tessdata'フォルダを使用します。 'TESSDATA_PREFIX'変数で定義されているパスを認識していません。 – nguyenq