Числовое распознавание символов в Pytesser

Я работаю над проектом, который требует от меня получить цены на товарной бирже. К сожалению, биржа не имеет веб-сервиса или другого доступного плагина, который позволяет мне получать цены с экрана торговли.

Я решил, что смогу автоматически сделать скриншот цен и разделить все цены на отдельные изображения. После этого я обрабатываю их с помощью библиотеки Pytesser V 0.0.1 для Tesseract 3.0.2 в сочетании с Pillow 3.1.0 в Python v2.7. Однако преобразование изображения в текст (с помощью функции image_to_string) является драматичным, поскольку в большинстве случаев 0 становится o или 5 становится s, а иногда преобразование является случайным, что затрудняет просто замену этих символов. Я уже изменил размер изображения до большего размера и использовал сглаживание, но результат не улучшается. Есть ли способ ограничить набор символов только цифрами и точкой для десятичных дробей? И как можно улучшить качество конверсии?

Возможно, мой метод слишком утомителен, и вы, ребята, знаете лучший способ сделать это? Ваша помощь ценится:)

1 ответ

Решение

Есть ли способ ограничить набор символов только цифрами и точкой для десятичных дробей?

Да! Используя пакет pyslibtesseract:

from pyslibtesseract import TesseractConfig, PageSegMode
config_line = TesseractConfig(psm=PageSegMode.PSM_SINGLE_LINE)
config_line.add_variable('tessedit_char_whitelist', '0123456789.')

И как можно улучшить качество конверсии?

Вам нужно использовать OpenCV для улучшения качества изображения.

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