Распознавание числовых символов в Pytesser

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

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

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


person Robert    schedule 22.01.2016    source источник
comment
У вас есть пример, над каким изображением вы хотите работать?   -  person Michiel Overtoom    schedule 23.01.2016
comment
Пожалуйста, в следующем вопросе пишите поменьше. Вы не должны объяснять много деталей, а только существенное, чтобы мы ответили.   -  person macabeus    schedule 24.01.2016


Ответы (1)


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

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

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

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

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

person macabeus    schedule 24.01.2016