2

androidtesseractツールを使用してandroid用のtesseractocrを構築しましたが、すべてうまくいきました。ライブラリファイルも入手しました。Javaラッパーを使用してネイティブメソッドにアクセスしようとすると、デバイスがクラッシュします。カメラのコールバックで直接tesseractを使用しています。

コードは次のようになります。

public class AndroidCamera extends Activity implements SurfaceHolder.Callback {

    TessBaseAPI tba;

    PictureCallback myPictureCallback_JPG = new PictureCallback() {

        public void onPictureTaken(byte[] data, Camera arg1) {
            Bitmap bitmapPicture = BitmapFactory.decodeByteArray(data, 0, data.length);
            tba = new TessBaseAPI();
            tba.setImage(bitmapPicture);
            String result = tba.getUTF8Text();
            Log.i("text: "+result);

            Toast.makeText(AndroidCamera.this,result,Toast.LENGTH_LONG).show();
        }
        camera.startPreview();
    };
}

tba.getUTF8Text()ログをチェックインしましたが、デバイスがクラッシュしたため、setimageは正常に機能しています。

4

1 に答える 1

3

目的の言語のエンジン初期化コードが表示されません。これは、言語/ディレクトリを使用してinitメソッドを呼び出すことによって行われます。

    // if trained data is /mnt/sdcard/tessdata/eng.traineddata then 
    // the tesseractDirectory should be /mnt/sdcard/
    String tesseractDirectory ="path to tessdata dir";
    TessBaseAPI api = new TessBaseAPI();

    // eng - english language
    api.init(tesseractDirectory, "eng");
    // you may want to provide a grayscale/high contrast image for better results

トレーニングされたデータはここからダウンロードできます:http ://code.google.com/p/tesseract-ocr/downloads/list

于 2011-07-20T11:09:12.767 に答える