我正在开发一个应用程序,我需要在其中识别图像中的文本以及比使用 Tesseract 更好的方法。由于 Tesseract 是开源的并被广泛接受。我在我的应用程序中使用了 Tesseract。因此,我从用户那里获取图像,然后对图像应用 2-3 次操作以提高获得结果的机会,但我没有得到预期的结果。
Java 代码 ->
final Bitmap tessBitmap = Bitmap.createBitmap(image.getWidth(), image.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(tessBitmap);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawBitmap(image, 0, 0, paint);
Mat tessMat = new Mat();
Utils.bitmapToMat(tessBitmap, tessMat);
Imgproc.cvtColor(tessMat, tessMat, Imgproc.COLOR_RGB2GRAY);
Imgproc.threshold(tessMat, tessMat, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU);
final Bitmap newTessBitmap = Bitmap.createBitmap(tessMat.width(), tessMat.height(), Bitmap.Config.RGB_565);
Utils.matToBitmap(tessMat, newTessBitmap);
final Bitmap finalTessBitmap = Bitmap.createBitmap(newTessBitmap.getWidth(), newTessBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tessCanvas = new Canvas(finalTessBitmap);
Paint tessPaint = new Paint();
tessPaint.setColor(Color.BLACK);
tessCanvas.drawBitmap(newTessBitmap, 0, 0, tessPaint);
然后将此位图传递给 tesseract 以获得输出但效率不高,有时我什至没有得到任何输出。我将我的结果与一个在线网站进行了比较 https://www.newocr.com/ .
正如它声称的那样,它也在后端使用 tesseract。我也曾尝试通过电子邮件与他们联系,但无法从他们那里得到任何信息。
mTess = new TessBaseAPI();
tessModelPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/tesseract/";
mTess.init(tessModelPath, "eng", TessBaseAPI.OEM_TESSERACT_ONLY); mTess.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO);
mTess.setImage(finalTessBitmap);
这是基本的 Tesseract 代码。请帮我解决我的问题。谢谢...
下面给出的是我在应用上述操作后得到的图像,但是当我将它传递给 tesseract 时,我没有得到任何东西,但是当传递给 newocr.com 网站时,它生成了准确的文本。
newOcr 的结果。
此图片用于结果。
如果您有任何想法,请建议我该怎么做。
在深入挖掘并在 python 代码中运行相同的图像后,我发现在 python pytesseract 中它像 charm 一样工作并产生与 newocr 一样的精确输出。但是当我在 android 中运行时,它不能很好地工作。所以问题可能出在 Tesseract 的 API 上。所以,现在,如果您还知道我可以做些什么来提高准确性。帮我。提前致谢。
最佳答案
$ tesseract 8UIBw.jpg -
Warning: Invalid resolution 0 dpi. Using 70 instead.
Estimating resolution as 613
Tillamook
没有任何预处理...
$ tesseract -v
tesseract 4.0.0-253-g3948
leptonica-1.76.0 (Dec 14 2018, 15:34:47) [MSC v.1916 LIB Release x64]
libgif 5.1.4 : libjpeg 9b : libpng 1.6.35 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
Found AVX
Found SSE
关于android - 没有从 Tesseract OCR 获得有效的结果作为 newocr 生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55119596/