Значение Bytes Per Pixel для байтового представления изображения в 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 (байты на пиксель) и bpl (байты на строку). Кто-нибудь знает, как я могу получить эти значения? В данный момент я поместил туда довольно случайные значения и полагаю, что позже это вызовет ошибки.

Я должен отметить, что приложение также использует JavaCV для распознавания изображений, которое отлично распознает изображения, и я использую тот же источник данных изображения для этого вызова tesseract.

Спасибо.


person Lee    schedule 01.05.2011    source источник


Ответы (1)


Я действительно сделал то же самое, и у меня все заработало. Я думаю, вы каким-то образом будете использовать камеру и предварительный просмотр камеры, чтобы захватить экран для распознавания OCR. Поэтому вы можете получить формат предварительного просмотра камеры, который позволяет вам через PixelFormat получить BytesPerPixel.

Я приведу вам короткий пример:

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.

Я надеюсь, что это помогает. Если у вас будут дополнительные вопросы, позвольте мне сейчас.

С наилучшими пожеланиями и удачи, Волкер

person Volker    schedule 13.05.2011
comment
Я не уверен, почему bpl является дополнительным вводом. Разве bpl=bpp*width не всегда? - person amit; 04.10.2011