#android #ocr #tesseract
#Android #распознавание текста #тессеракт
Вопрос:
В настоящее время я пишу приложение для Android, в котором необходимо использовать OCR.
Для достижения этого я использую Tesseract совместно с проектом tesseract-android-tools.
Мне удалось инициализировать Tesseract API, и мне нужно использовать следующую функцию setImage:
void com.googlecode.tesseract.android.TessBaseAPI.setImage(byte[] imagedata, int width, int height, int bpp, int bpl)
С чем я борюсь, так это с тем, как получить правильные значения для bpp (байт на пиксель) и бпл (байт на строку). Кто-нибудь знает, как я могу получить эти значения?На данный момент я ввел туда довольно случайные значения и считаю, что это вызывает ошибки позже.
Я должен отметить, что приложение также использует JavaCV для распознавания изображений, которое отлично распознает изображения, и я использую тот же источник данных изображения для этого вызова tesseract.
Спасибо.
Ответ №1:
Я на самом деле сделал то же самое и заставил его работать. Я предполагаю, что вы каким-то образом будете использовать камеру и предварительный просмотр камеры для захвата экрана для распознавания OCR. Таким образом, вы можете получить формат предварительного просмотра с камеры, который позволяет вам через PixelFormat извлекать байт-пиксель.
Я приведу вам короткий пример:
Camera.Parameters cameraParameters = camera.getParameters(); // retrieve the camera parameters
previewFormat = cameraParameters.getPreviewFormat(); // retrieve the Previewformat according to your camera
PixelFormat pf = new PixelFormat(); // create a PixelFormat object
PixelFormat.getPixelFormatInfo(previewFormat, pf); // get through the previewFormat-int the PixelFormat
int bpp = pf.bytesPerPixel; // save the BytesPerPixel for this Pixelformat
int bpl = bpp*width; // BytesPerLines is just the "BPP * width" of your PreviewFormat/Picture
tess.setImage(imagedata, width, height, bpp, bpl); // setImage with imagedata[], width and height of the previewFormat, etc.
Я надеюсь, что это поможет. Если у вас возникнут дополнительные вопросы, позвольте мне сейчас.
Наилучшие пожелания и удачи, Фолькер
Комментарии:
1. Я не уверен, почему бпл является дополнительным входом. Не
bpl=bpp*width
всегда?