2

我使用 android tesseract 工具为 android 构建了 tesseract ocr,一切正常。我还得到了库文件。当我尝试使用 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()我在设备崩溃时检查了日志 cat still 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 回答