Каталог tessdata для Android в Tesseract OCR не найден

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

person dr3wmurphy    schedule 08.11.2012    source источник


Ответы (1)


Как вы сказали, каталог DATA_PATH должен содержать tessdata как подпапку. Итак, если ваша папка tessdata была / data / data / tessdata, DATA_PATH будет / data / data, я надеюсь, что это поможет!

РЕДАКТИРОВАТЬ: ак, я думаю, что неправильно понял!

person Andy    schedule 08.11.2012
comment
Да, эту часть я знал из файла BaseAPI.java. Я вошел в файловую систему, чтобы проверить и убедиться, что каталог существует, и, конечно же, он есть. Каталог в данном случае - / mnt / sdcard / Image2Text /. Этот каталог содержит tessdata как подпапку. Я неправильно указываю это в своем коде? Кроме того, мой код ДОЛЖЕН создать папку, если это не так. В моем случае это так, поскольку у меня есть android.permission.WRITE_EXTERNAL_STORAGE в AndroidManifest.xml - person dr3wmurphy; 08.11.2012