我有一个Android AsyncTask,它使用Leptonica库的ReadFile.readBitmap(bitmap)
方法反复将Pix转换为Bitmap。在任何图像处理操作完成后,我正在执行此转换并从中获得Pix对象。
我发现当我不将位图转换为像素时,使用 Tesseract 的 OCR 的结果更好。但是,我没有在任何操作中将 Pix 转换为位图。典型的周期如下所示:
mOperation=CONVERT_TO_8;
Pix pix2=convertOperation(pix);
mOperation=PIX_TO_BITMAP;
Bitmap bitmap2=convertPixToBitmap(pix2);
publishProgress(bitmap2);
mOperation=SCALE_PIX;//next operation...
那么,如果我想在显示位图作为进度的同时保持 OCR 结果的质量,我该怎么办?
我仍然不知道这个问题的答案,但它可能是肯定的。我使用 Leptonica 中提供的深度复制方法将 Pix 复制到临时 Pix 对象,然后将其转换为现在工作正常的 Bitmap.It:
Pix temp=pix.copy();