我目前正在使用OCR开发Android应用程序,我已经达到了调用BaseAPI.init()方法的程度。我不断收到错误,指出该目录必须包含tessdata作为子文件夹。我已经检查过文件目录中包含了trainingdata文件的文件夹,并确保我指向正确的目录。我真的想解决这个问题。
我指向的目录是/ 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));
答案 0 :(得分:6)
如您所说,DATA_PATH目录必须包含tessdata作为子文件夹。因此,如果您的tessdata文件夹是/ data / data / tessdata,DATA_PATH将是/ data / data 我希望这有帮助!
编辑:ak,我想我很想念!