2012-02-26 6 views
0

В настоящее время я пытаюсь получить Тессеракта андроид инструментыТессеракт-Android-Tools изменения и модификации успешно скомпилирован (я думаю), но вывод

http://code.google.com/p/tesseract-android-tools/

работать для меня на Android. Я занимаюсь этим около недели безрезультатно.

Я бегу Win 7 64 бит с 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."); 
     } 

Сначала я получаю сообщение об ошибке говорящее

«функции Bitmap не доступны; библиотека должна быть скомпилированные под андроид-8 НДК»

После взглянуть на tessbaseapi .cpp-файл. Я понял, что для компиляции правильной функции необходим определенный флаг компилятора. Этот флаг был -DHAS_JNIGRAPHICS. Я думаю, что это означает, что библиотека графики JNI должна присутствовать.

Однако программа все еще не компилируется, поскольку функция memcpy() в только что скомпилированном методе не найдена. Я исправил это, изменив реальный код на C++, чтобы включить

Наконец, программа полностью скомпилирована (все еще не получалось сообщение BUILD SUCCESSFUL), и когда я ее запускал, я вообще не получал никакого вывода. Это может быть проблемой с файлом eng.traineddata или может быть проблемой в фактическом коде.

Есть ли что-либо, что я сделал неправильно? Может ли кто-нибудь связать меня и файл eng.traineddata, который они знают, работает и изображение, которое работает с ним?

Заранее благодарен!

ответ

2

Прошло несколько месяцев с тех пор, как вы разместили этот вопрос, однако, если вы все еще ищете ответы, я серьезно рекомендую вам взглянуть на проект tess-two на github.

Хотя это не решит ошибку, которую вы опубликовали, это тактическая работа вокруг/альтернативного решения.

Это вилка tesseract-android-tools и невероятно проста в использовании, вы сможете запустить ее в течение часа.

Если вы получаете плохие результаты, убедитесь, что у вас есть обучаемый файл с данными, используйте проводник DDMS, чтобы проверить его там, а не 0 байтов (что случилось со мной несколько раз).

Кроме того, убедитесь, что вы задали символы белого и черного списка, это улучшит результаты очень хорошо.

Удача

+1

Я действительно закончил это. Я использовал тот же проект tess-two на github и построил его с ubuntu. Он работает именно так, как я этого хочу. Я думаю, что это может быть проблемой с библиотекой инструментов tesseract android. Я бы рекомендовал использовать tess-two для тех, кто испытывает подобные трудности. – eaglzfn37