Программа, которая распознает текст на скрине, ищет вхождение этого текста в базе и возвращает найденноые места. Также поддерживаются дополнительные функции поиска по полученному тексту и настройки области поиска текста. Реализовано в качестве телеграм-бота.
Предназначено для запуска на Linux.
Требуется установленный tesseract с русским языком (tesseract-ocr-rus для apt и tesseract-data-rus) и утила convert.
Python-зависимости:
python-telegram-botrequests
Сначала нужно создать телеграм-бота и добавить токен в TOKEN (в файле src/config.py).
Директория со скриншотами задается также в src/config.py.
ВНИМАНИЕ: Все, найденные там изображения будут распознаваться и перемещаться в заданную директорию!
Для запуска бота:
python src/bot.pyЧтобы поиск текста был корректным, предварительно нужно подобрать параматры CROP_LEFT, CROP_TOP и CROP_RIGTH в src/config.py. Эти параметры задают обрезаемое пространство вокруг текста, протестировать это можно, запуская crop из src/img_to_text.py. Оптимально, чтобы слева, сверху и справа не было постороннего текста, а текст, который нужно распознать находился в самом верху обрезанной картинки.
Кроме предварительного подбора есть команды для изменения отступа сверху в процессе работы программы.
\j <text>Ищет ответ на данный вопрос, можно только подстроку.\infЗапускает бесконечный цикл сканирования фотографий.\inf_channalЗапускает бесконечный цикл сканирования фотографий, но с отсылкой в канал с заданным вsrc/config.pyID.\up <X: int>Поднимает верхнюю границу сканируемого изображения наX px.\down <X: int>Опускает верхнюю границу сканируемого изображения наX px.\resetВозвращает к стандартному значению верхнюю границу сканируемого изображения.<text>Любая другая команда запускает сканирование один раз.- Можно запустить
src/main.py. Будет активирована бесконечная проверка скринов и отсылка в канал, заданный в настройках.