Предельные символы tesseract ищет
Можно ли ограничить набор символов, которые ищет tesseract (например, поиск только для букв az)? Это значительно улучшит мои результаты.
- Как распознать лицензию / номерной знак транспортного средства (ANPR) на изображении?
- Извлечение текста из сканированной книги .PDF
- OCR с интерфейсом Tesseract
- Преобразование YUV-> RGB (Обработка изображений) -> YUV во время onPreviewFrame в android?
- Хорошее бесплатное OCR с графическим интерфейсом для исправления ошибок? (Для Windows)
- Как извлечь текст с помощью OCR из PDF в Linux?
- Какую библиотеку OCR Java я должен использовать в Android?
- Как сделать OCR в PDF-документе?
Создайте файл конфигурации (например, «буквы») в каталоге tessdata / configs – обычно /usr/share/tesseract/tessdata/configs
или
/usr/share/tesseract-ocr/tessdata/configs
И добавьте эту строку в файл конфигурации:
tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz
… или, может быть, [az] работает .. dunno 🙂
Затем вызовите tesseract, подобный этому:
tesseract input.tif output nobatch letters
Это ограничит tesseract, чтобы распознать только нужные символы
В дополнение к конфигурационному файлу, флаг -c
:
tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
Просто добавьте это для тех, кто использует tesseract на Android. В вашей функции readOCR, где вы устанавливаете язык и т. Д., Добавьте следующую строку;
tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
вы также можете сделать blackList для исключения символов.
Чтобы использовать белый список в файле конфигурации или с помощью -c tessedit_char_whitelist=...
командной строки -c tessedit_char_whitelist=...
, в новейшей версии 4.0 вам нужно будет установить режим OCR Engine в «Только оригинальный Tesseract». Это связано с тем, что новый режим «Нейронные сети LSTM» не учитывает настройку белого списка. Пример правильной командной строки для версии 4.0:
tesseract input_file output_file –oem 0 -c tessedit_char_whitelist = abc123