2012-02-26 4 views
0

は現在、私は、Android上で私のために働くたTesseractアンドロイドツールたTesseract - アンドロイド - ツールの変更や修正が正常にコンパイル(と思う)が、何も出力

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

を取得しようとしないのです。私はこれを約1週間使っていない。

私はcygwinでWin 7 64ビットを実行しています。

私はreadmeファイルの指示に従って、Android.mkファイルに多くの変更を加えました。基本的にはパスにスラッシュが追加されていたので、個々のファイルのパスを手動でハードコーディングしたり、3つのパッケージ内のファイルの場所に移動してビルドする必要がありました。しかし、ビルドの終わりに、私は "Build Sucessful"通知を受け取りませんでしたが、.soファイルが生成されました。

私はそれをそのままeclipseに移植し、次のコードを使用して抽出されたテキストを取得しました。

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."); 
     } 

は、最初に私が言ってエラーになった

「利用できませんビットマップ機能、ライブラリはアンドロイド-8 NDKでコンパイルされなければならない」tessbaseapiを見て取った後

.cppファイル私は、正しい関数をコンパイルするために特定のコンパイラフラグが必要であることに気付きました。このフラグは-DHAS_JNIGRAPHICSでした。これが意味することは、JNI Graphicsライブラリが存在しなければならないということです。

ただし、新しくコンパイルされたメソッドのmemcpy()関数が見つからないため、プログラムはまだコンパイルされません。実際のC++コードを変更してこれを修正しました

最後に、プログラムは完全にコンパイルされましたが(まだ成功していませんでしたが)、実行したときに出力が得られませんでした。これはeng.traineddataファイルに問題があるか、実際のコードで問題になる可能性があります。

私が間違っていることはありますか?誰かが私をeng.traineddataファイルにリンクすることはできますか?

ありがとうございます!

答えて

2

この質問を投稿してから数ヶ月が経過していますが、まだ答えを探している場合は、tess-twoプロジェクトをgithubでご覧になることを真剣にお勧めします。

これはあなたが投稿したエラーを解決するものではありませんが、代わりの解決策に関する戦術的な解決策です。

これはtesseract-android-toolsのフォークで、使い方は非常に簡単ですが、1時間以内に起動して実行できます。

結果が悪い場合は、traineddataファイルが存在することを確認してください。DDMSファイルエクスプローラを使用して、0バイトではなく(数回発生した)チェックしてください。

また、ホワイトリストとブラックリストの文字を設定することを忘れないでください。結果が向上します。

幸運

+1

私は実際これをやり終えました。私はgithubで同じtess-twoプロジェクトを使用し、ubuntuから構築しました。それは私が望むのとまったく同じように機能します。私はそれがtesseractアンドロイドツールライブラリの問題だったと思います。私はtess-twoを使用することをお勧めしたいと思います。 – eaglzfn37

関連する問題