Tesseract OCR无法产生高效的结果作为newocr的生产

时间:2019-03-12 10:46:44

标签: android opencv ocr tesseract text-recognition

我正在开发一个需要从图像中识别文本的应用程序,这可能比使用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。我也曾尝试通过电子邮件与他们联系,但coudlnt从他们那里得到了任何东西。

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网站时,它会产生准确的文本。

Image

newOcr的结果。

此图片仅供参考。

Check this image for results.

如果您有任何想法,请给我建议。

在更多地挖掘并在python代码中运行相同的图像后,我发现在pytesseract中它的工作方式像charm一样,并以newocr的形式产生确切的输出。但是,当我在android中运行时,效果不佳。因此可能是Tesseract的API问题。所以,现在,如果您仍然知道我可以做的任何事情以提高准确性。帮我。预先感谢。

1 个答案:

答案 0 :(得分:0)

$ 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