В настоящее время я разрабатываю приложение для Android с использованием OCR и дошел до того момента, когда вызываю метод 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));