我目前正在使用 OCR 开发 Android 应用程序,并且已经达到了调用 BaseAPI.init() 方法的程度。我不断收到错误消息,指出该目录必须包含 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));
就像你说的,DATA_PATH 目录必须包含 tessdata 作为子文件夹。因此,如果您的 tessdata 文件夹是 /data/data/tessdata,则 DATA_PATH 将是 /data/data
我希望这个对你有用!
编辑:所有,我想我误解了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)