我使用 tesseract 库来从图像中捕获某些文本。我知道捕获的图像没有保存在任何地方,它会被回收。我需要找到原始的彩色位图。我一直在尝试找到原始的彩色位图,但我只能找到一个灰度位图:
Bitmap bitmap = activity.getCameraManager().buildLuminanceSource(data, width, height).renderCroppedGreyscaleBitmap();
当我将此位图保存到 SD 卡时,我得到一个灰度图像。renderCroppedGreyscaleBitmap() 方法如下:
public Bitmap renderCroppedGreyscaleBitmap() {
int width = getWidth();
int height = getHeight();
int[] pixels = new int[width * height];
byte[] yuv = yuvData;
int inputOffset = top * dataWidth + left;
for (int y = 0; y < height; y++) {
int outputOffset = y * width;
for (int x = 0; x < width; x++) {
int grey = yuv[inputOffset + x] & 0xff;
pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);
}
inputOffset += dataWidth;
}
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}
如果有人能告诉我获取原始彩色图像,我将不胜感激。我是否必须更改此方法才能获得彩色图像(RGB)?