Тессеракт дает нежелательные данные как вывод для японского языка
Я пытаюсь создать пример приложения на языке 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(); мы можем установить локаль для английского языка также для извлечения как японского, так и английского текста из изображения.
теперь это работает как шарм для меня!