1

私は現在、OCR (光学式文字認識) に基づく Android アプリケーションを開発しています。Android で使用する Tesseract、Leptonica、および JPEG ライブラリをコンパイルするためのツールを含む「tesseract-android」プロジェクトをダウンロードしました。Windows Vista OS で Eclipse を使用して開発しています。

必要なツール (android-ndk;apache ant..) もダウンロードし、このプロジェクトをビルドして基本アプリケーションにライブラリとして追加するためのすべての手順を慎重に実行しました。

私のアプリは、写真を撮るためにカメラを開き、テキストに変換するために tesseract API を介してこの写真を処理することで構成されています。

私の質問は次のとおりです。 1. この手順が Windows OS で機能しないというのは本当ですか? 2. コンパイル中に、次のエラーが発生します。

潜在的なエラーは何ですか? Java コードの関連部分は次のとおりです。

File myDir = getExternalFilesDir(Environment.MEDIA_MOUNTED); 
TessBaseAPI baseApi = new TessBaseAPI(); 
baseApi.init(myDir, "eng");

「myDir」の代わりに「/tess-two/external/tesseract-3.01/tessdata/tessconfigs」も使用しようとしましたが、エラーは同じままです。

助けていただければ幸いです。

前もって感謝します。

4

3 に答える 3

1

Q1. どのオペレーティング システムでも動作するはずです。私はndk-buildWin7、Mac OS Lion、および Ubuntu で問題なく動作しました。

Q2. 外部ストレージへの書き込み権限があり、十分な容量があることを確認してください。

それでも問題が解決しない場合は、DDMS を見てファイル エクスプローラーを確認し、アプリケーションがディレクトリ構造をセットアップしてトレーニング済みデータをコピーしていることを再確認してください。

eng.traineddata ファイルを作成するという奇妙な問題がありましたが、それは 0 バイトであり、あらゆる種類の奇妙な問題を引き起こしました。

ディレクトリ構造を手動で作成して作業を進め、後でこの初期化の問題を修正することもできます (ただし、忘れないでください!)。

于 2012-06-03T16:43:35.683 に答える
1

私は同じ問題に直面していました。パスから「tessdata」を削除すると、うまくいきました。

Before (fail): path = "/mnt/sdcard/tesseract/tessdata"; 
After (success): path = "/mnt/sdcard/tesseract/";

次に、 baseApi.init(path, "eng") は例外なく機能しました。

もちろん、tessdata フォルダーは、desired.traineddata ファイルのあるパスにある必要があります。

于 2015-01-29T16:18:16.630 に答える
0

通常、ネイティブのものをコンパイルする際のパス エラーは、Java コードとは関係ありません。あなたの Java コードは実行時の問題の原因となります。ビルド スクリプトを確認し、さらにログ メッセージを投稿してください。

于 2012-04-04T07:02:18.667 に答える