Приложение для автоматического снятия скриншотов с 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, который должен находиться в той же папке, что и исполняемый файл. В файле можно задать параметры окна, области захвата, интервалы съемки и другие настройки.

Использование

  1. Укажите название окна в config.ini.
  2. Настройте области скриншотов.
  3. Запустите приложение.
  4. Управляйте через иконку в системном трее.

Код:


Здесь должен был быть код. 
Он перемещен в файл.

Код 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 универсально. На данный момент, распознование текста, в моем случае работает не очень. В дальнейшем есть планы по дополнению с функцией распознавания нескольких отдельно заданных частей, для более точной идентификации данных.

Alecsey 2025-03-11