Android中图像的字节表示的字节数每像素值

时间:2011-05-01 23:55:42

标签: android ocr tesseract

我目前正在编写一个需要在其中使用OCR的Android应用程序。

为实现这一目标,我将Tesseract与tesseract-android-tools project结合使用。

我设法让Tesseract API初始化并需要使用以下setImage函数:

void com.googlecode.tesseract.android.TessBaseAPI.setImage(byte[] imagedata, int width, int height, int bpp, int bpl)

我正在努力的是如何获得bpp(每像素字节数)和bpl(每行字节数)的正确值。 有谁知道我如何获得这些值?我现在已经在那里放置了相当随机的值,并且相信它会在以后导致错误。

我应该注意到该应用程序还使用JavaCV进行图像识别,这可以很好地识别图像,并且我正在使用相同的图像数据源进行此tesseract调用。

感谢。

1 个答案:

答案 0 :(得分:6)

我实际上也做了同样的工作。我想你会以某种方式使用相机和相机预览来捕捉屏幕以进行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.

我希望它有所帮助。如果您现在有其他问题,请立即与我联系。

祝你好运,祝你好运, 沃尔克