我正在尝试在我的Android应用中使用tesseract-ocr。当我尝试init()时,我得到IllegalArgumentException,因为在这个文件夹中没有' tessdata' DIR!这是我的项目结构。 project structure
这里我使用了InputStream和cacheDir:
private String getDirPath() {
File f = new File(getCacheDir()+"/tessdata/");
if (!f.exists()) try {
InputStream is = getAssets().open("tessdata/eng.traineddata");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer);
fos.close();
} catch (Exception e) { Log.e("error", e.toString()); }
Log.i("wtf", f.getPath());
return getCacheDir();
}
要初始化Tesseract,我必须传递2个参数 - 包含目录' tessdata'的dir的路径。第二个是训练有素的。 有什么想法吗?
答案 0 :(得分:0)
您不能以这种方式引用您应用的原始资产文件。请尝试使用AssetManager。
答案 1 :(得分:-1)
资产的路径是
Uri path = Uri.parse("file:///android_asset/")
String dataPath = path.toString();