使用tesseract使用android提取图像中的文本时出错

时间:2011-04-26 05:48:33

标签: android tesseract

我使用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();
    };
}

我检查了日志猫仍然是setimage它工作正常,在tba.getUTF8Text()设备崩溃。

1 个答案:

答案 0 :(得分:3)

我没有看到任何带有所需语言的引擎初始化代码。这是通过使用language /目录调用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