загрузка обученных данных для tesseract-android-tools (android) - PullRequest
2 голосов
/ 23 сентября 2011

Я работаю над приложением для Android.Что мне нужно, так это прямой путь к файлу Trainingdata (для инициализации tesseract).Похоже, лучший вариант - установить ресурс в сыром виде.

Я получаю идентификатор ресурса таким образом (имя файла: deu.traineddata):

int rID = resources.getIdentifier("deu", "raw", "my.code.package");

OK, 'rID'> 0, теперь получаю поток:

InputStream is = resources.openRawResource(rID);

хорошо, 'is'! = Null.Но теперь возникает проблема, при чтении 'is' IOException было выброшено без трассировки стека:

byte[] bytes = new byte[is.available()];
is.read(bytes);

Я также пытаюсь прочитать файл из ресурса, но та же проблема при чтении из InputStream.Что я делаю не так, есть ли другой способ получить путь к ресурсу?спасибо andrej

1 Ответ

2 голосов
/ 28 октября 2011

Если вы посмотрите на собственный код в tesseract-android-tools (под jni), вы увидите, что библиотека будет обращаться к файлу. Я сейчас в одной лодке. После некоторых копаний я планирую сохранить файл с обученными данными как ресурс вместе с проектом и записать в приватный файл при загрузке.

Псевдокод выглядит примерно так:

при загрузке, проверьте личный файл, если он не существует, загрузите обученные данные из raw dir и запишите в приватный файл. инициализировать tesseract с помощью личного файла.

ссылка: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal http://developer.android.com/guide/topics/resources/providing-resources.html

Приветствия

...