Tesseract将垃圾数据作为Japaneses语言的输出

时间:2017-09-04 14:04:22

标签: ocr tesseract python-tesseract tess4j

我正在尝试在java中为Japaneses语言构建一个示例应用程序,它将读取图像文件并输出从图像中提取的文本。我在网上找到了一个适用于英语的示例应用程序,但不是日本语,它提供了不明文本,以下是我的代码:

BytePointer outText;

    TessBaseAPI api = new TessBaseAPI();
    // Initialize tesseract-ocr with japanees, without specifying tessdata path
    if (api.Init(".", "jpn") != 0) {
        System.err.println("Could not initialize tesseract.");
        System.exit(1);
    }

    // Open input image with leptonica library
    PIX image = pixRead("test.png");
    api.SetImage(image);
    // Get OCR result
    outText = api.GetUTF8Text();
    String string = outText.getString();
    assertTrue(!string.isEmpty());
    System.out.println("OCR output:\n" + string);

    // Destroy used object and release memory
    api.End();
    outText.deallocate();
    pixDestroy(image);

我的输出是: OCR输出: ETCã,«ãƒ¼-ード瓳¾¾æ>¸ ã?Šç“³ã?-è¾¼ã?¿æ-¥09/02/2017 ETC FeatureID ETCFFL ー瓳込枚輩交画枚

我使用过jpn.tessdata,我的应用程序也正在阅读tessdata文件。是否需要更多的移民?我正在使用Tessaract 3.02版本,图像非常干净。

1 个答案:

答案 0 :(得分:0)

是的!我得到了解决方案,我们需要做的是在我们的java代码中设置语言环境,如下所示: olocale = new Locale.Builder()。setLanguage(" ja")。setRegion(" JP")。build(); 我们也可以设置英语语言环境,以便从Image中提取日语和英语文本。

现在它对我来说就像魅力一样!!