Тессеракт дает нежелательные данные как вывод для японского языка

Я пытаюсь создать пример приложения на языке Java для японского языка, который будет читать файл изображения и просто выводить текст, извлеченный из изображения. Я нашел один пример приложения в сети, который отлично работает для английского языка, но не для японцев, он дает неопознанный текст, мой код следующий:

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 ãƒ¼ç ³è¾¼æžšè¼©äº¤ ç "" AEZS

Я использовал jpn.tessdata, и мое приложение также читает файл tessdata. Нужна ли еще какая-то конфиграция? Я использую версию Tessaract 3.02 с очень чистым изображением.

1 ответ

Да! я получил решение, что нам нужно сделать, это установить локаль в нашем коде Java следующим образом: olocale = new Locale.Builder().setLanguage("ja").setRegion("JP").build(); мы можем установить локаль для английского языка также для извлечения как японского, так и английского текста из изображения.

теперь это работает как шарм для меня!

Другие вопросы по тегам