Ограничение символов Тессеракт ищет
можно ли ограничить набор символов, которые Тессеракт ищет (например, поиск только для букв a-z)? Это значительно улучшило бы мои результаты.
4 ответа:
создайте файл конфигурации (например, "буквы") в каталоге tessdata/configs - обычно
/usr/share/tesseract/tessdata/configs
или/usr/share/tesseract-ocr/tessdata/configs
и добавить эту строку в конфигурационный файл:
tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz
...или, может быть, [a-z] работает.. не знаю : -)
Затем вызовите Тессеракт, подобный этому:tesseract input.tif output nobatch letters
это ограничит Тессеракт распознавать только нужные символы
в дополнение к конфигурационному файлу, это
-c
флаг:tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
использовать белый список в файле config или с помощью
-c tessedit_char_whitelist=...
переключатель командной строки, в новейшей версии 4.0 вам нужно будет установить режим OCR Engine в "Original Tesseract only". Это связано с тем, что новый режим "нейронные сети LSTM" не учитывает настройки белого списка. Пример правильной командной строки в версии 4.0:tesseract input_file output_file --oem 0-c tessedit_char_whitelist=abc123
просто добавив Это для тех, кто использует tesseract на Android. В вашей функции readOCR, где вы устанавливаете язык и т. д. добавить следующую строку;
tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
вы также можете сделать черный список для персонажей, чтобы исключить.