В настоящее время я пытаюсь заставить работать инструменты Android для Tesseract
http://code.google.com/p/tesseract-android-tools/
для меня на Android.Я занимался этим около недели, но безрезультатно.
Я использую 64-разрядную версию Win 7 с Cygwin.
Я следовал инструкциям в файле readme и внес много изменений в файлы Android.mk.По сути, это добавление косой черты к пути, поэтому мне пришлось вручную жестко кодировать пути к отдельным файлам или переходить к расположению файлов в 3 пакетах, чтобы получить его для сборки.Однако в конце сборки я не получил уведомление «Build Sucessful», но были созданы файлы .so.
Я портировал его на затмение как есть и использовал следующий код для получения извлеченного текста.
private static final String TESSBASE_PATH = "/mnt/sdcard/";
Bitmap imageFile = BitmapFactory.decodeFile(image.getAbsolutePath());
TessBaseAPI baseApi = new TessBaseAPI();
if(baseApi.init(TESSBASE_PATH, "eng")){
System.out.println("Tessbase initialized");
baseApi.setDebug(true);
baseApi.setImage(bmp);
String recognizedText = baseApi.getUTF8Text();
System.out.println("---------------------output-------------------");
System.out.println("recognizedText<"+recognizedText+">");
}
else{
System.out.println("Tessbase initialization failure.");
}
Сначала я получил сообщение об ошибке
«Растровые функции недоступны; библиотека должна быть скомпилирована в Android-8 NDK»
После просмотра файла tessbaseapi.cpp я понял, что для компиляции правильной функции нужен специальный флаг компилятора.Этот флаг был -DHAS_JNIGRAPHICS.Я думаю, это означает, что библиотека JNI Graphics должна присутствовать.
Тем не менее, программа все равно не будет компилироваться, так как не удалось найти функцию memcpy () во вновь скомпилированном методе.Я исправил это, изменив фактический код C ++, чтобы он включал
. Наконец, программа полностью скомпилировалась (хотя все еще не получала уведомления BUILD SUCCESSFUL), и когда я ее запустил, я вообще ничего не получил.Это может быть проблема с файлом eng.traineddata или проблема в реальном коде.
Что-то я сделал не так?Может кто-нибудь связать меня с файлом eng.traineddata, который, как он знает, работает, и изображение, которое работает с ним?
Заранее спасибо!