Приложение для автоматического снятия скриншотов с Windows-окна и распознавания текста на нем
Приложение предназначено для автоматического создания скриншотов заданного окна, обработки изображений и распознавания текста с помощью Tesseract OCR. Оно работает в фоновом режиме, сохраняет полученные данные в файлы и поддерживает управление через системный трей.
Предисловие
На сервере подключена метеостанция с 5 датчиками, данные с нее выгружаются в приложении EasyTemp. Автоматической выгрузки показаний приложение не предоставляет. Необходимо было реализовать простой способ передачи выборочной постоянно обновляющейся информации из окна приложения на веб-сервер для отображения информации онлайн. Для этих целей было разработано приложение на языке Python.
Возможности
- Автоматическое создание скриншотов окна с заданным интервалом.
- Поддержка настройки области захвата.
- Распознавание текста на изображениях.
- Генерация HTML-файлов с текстом.
- Управление через иконку в системном трее (пауза, выход).
- Сохранение результатов по указанному пути.
Системные требования
Для выполнения Python-скрипта:
- Python 3.8+
- Установленные библиотеки: pytesseract, pygetwindow, pyautogui, PIL, pystray
- Установленный и настроенный Tesseract OCR (если включено распознавание текста)
Для работы скомпилированного .exe:
- Windows 7/8/10/11 (x64)
- Tesseract OCR (если включено распознавание)
- Конфигурационный файл config.ini рядом с исполняемым файлом
Конфигурация
Настройки приложения хранятся в файле config.ini
, который должен находиться в той же папке, что и исполняемый файл. В файле можно задать параметры окна, области захвата, интервалы съемки и другие настройки.
Использование
- Укажите название окна в
config.ini
. - Настройте области скриншотов.
- Запустите приложение.
- Управляйте через иконку в системном трее.
Код:
Здесь должен был быть код.
Он перемещен в файл.
Код ini-файла:
[window]
window_title = EasyTemp
[offsets]
top = 50
bottom = 26
left = 6
right = 5
[screenshot]
interval_seconds = 15
# Интервал в секундах для повторения действий
output_folder = B:Extractoroutput
# Путь к папке для сохранения файлов
[tesseract]
enabled = True
# Включить (True) или отключить (False) распознавание текста
tesseract_cmd = C:Program FilesTesseract-OCR esseract.exe
[regions]
region_1 = 0,0,153,153
region_2 = 156,0,153,153
region_3 = 312,0,160,153
region_4 = 0,156,153,150
region_5 = 156,156,153,150
region_6 = 312,156,160,150
region_7 = 0,306,153,142
region_8 = 156,306,153,142
region_9 = 312,306,160,142
В заключение
Приложение доступно в загрузках в комплекте с необходимыми зависимостями для Windows 2008 R2. Теоретически его можно использовать для снимков и распознавания любых окон windows универсально. На данный момент, распознование текста, в моем случае работает не очень. В дальнейшем есть планы по дополнению с функцией распознавания нескольких отдельно заданных частей, для более точной идентификации данных.