#android #tesseract
#Android #тессеракт
Вопрос:
Я создал tesseract ocr для Android с помощью инструмента Android tesseract, и все прошло нормально. Я также получил файлы библиотеки. Когда я попытался использовать 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();
};
}
Я проверил в журнале cat still setimage, он работает нормально, в tba.getUTF8Text()
происходит сбой устройства.
Комментарии:
1. Теперь я получаю исключение с нулевым указателем при попытке получить строку с помощью метода getUTF8Text(). Я думаю, что изображение не обрабатывается, когда я устанавливаю изображение. пожалуйста, подскажите мне, как поступить.
Ответ №1:
Я не вижу никакого кода инициализации движка с нужным языком. Это делается путем вызова метода 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