4
我目前正在開發一個使用OCR的Android應用程序,並且我已經達到了調用BaseAPI.init()方法的地步。我不斷收到錯誤,指出該目錄必須包含tessdata作爲子文件夾。我已經檢查過文件目錄包含裏面有trainingdata文件的文件夾,並確保我指向正確的目錄。我真的想解決這個問題。Tesseract OCR Android tessdata目錄未找到
我指向的目錄是/ mnt/sdcard/Image2Text /。我已經確定tessdata是一個包含必要語言文件的子文件夾。
下面是代碼:
public static final String DATA_PATH = Environment.getExternalStorageDirectory().toString() +
"/Image2Text/";
....
File dir = new File(DATA_PATH + "tessdata");
dir.mkdirs();
if (!(new File(DATA_PATH + "tessdata/" + lang + ".traineddata")).exists()) {
try {
AssetManager assetManager = getAssets();
InputStream in = assetManager.open("eng.traineddata");
OutputStream out = new FileOutputStream(DATA_PATH
+ "tessdata/eng.traineddata");
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
} catch (IOException e) {}
}
TessBaseAPI baseAPI = new TessBaseAPI();
baseAPI.init(DATA_PATH, lang);
baseAPI.setImage(new File(path));
對,我通過閱讀BaseAPI.java文件知道這一部分。我已經進入文件系統來檢查並確保該目錄在那裏,並且確實如此。這種情況下的目錄是/ mnt/sdcard/Image2Text /。該目錄包含tessdata作爲子文件夾。我在我的代碼中錯誤地指定了它嗎?另外,如果不是,我的代碼應該創建該文件夾。它在我的情況下,因爲我在AndroidManifest.xml中有android.permission.WRITE_EXTERNAL_STORAGE – dr3wmurphy