我使用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()
设备崩溃。
答案 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