Распознавание цвета области и запись результата

Владимир Кучеров

Новичок
Пользователь
Ноя 27, 2020
2
0
1
Коллеги, добрый день.
Я заранее извиняюсь, за то что даже не уверен касаемо раздела.
Поэтому прошу отнестись с толерантностью и направить меня на нужное русло.

Задача:
Найти инструмент при помощи которого можно будет в течение длительного времени мониторить цветовые индикаторы заранее выбранных областей. Результаты о цвете, времени записи и номере области (так как их будет много), записывать в плоскую таблицу.

разумеется, что необходимые области будут всегда активны на мониторе.

Заранее большое спасибо.
 

Noor

Пользователь
Пользователь
Ноя 13, 2020
85
19
8
можно попробовать написать скрипт на autoit + писать в xls
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Можно например делать скриншот экрана и записывать в файл цвет точек по определенным координатам.
Вот пример:
Python:
import time
import pyautogui  # pip install pyautogui
import logging
from logging import FileHandler, Formatter


# логгер для записи в файл info.csv
logger = logging.getLogger("messaging")
logger.setLevel(logging.INFO)
handler = FileHandler("info.csv", "w", encoding="utf-8")
handler.setLevel(logging.INFO)
handler.setFormatter(Formatter("%(message)s"))
logger.addHandler(handler)

# функция для получения цвета в формате #ffffff
get_color = lambda r, g, b: '#%02x%02x%02x' % (r, g, b)


# в цикле делается скриншот экрана
# и записывается информация о цвете точек в определенных координатах
while True:
    im = pyautogui.screenshot()
    pixels = list(im.getdata())
    width, height = im.size
    img = [pixels[i * width:(i + 1) * width] for i in range(height)]
    t = time.ctime(time.time())  # время
    # img[y][x] - координаты точки на экране в пикселях
    # для примера 4 точки
    logger.info(f'1, {get_color(*img[350][100])}, {t}')
    logger.info(f'2, {get_color(*img[500][500])}, {t}')
    logger.info(f'3, {get_color(*img[800][200])}, {t}')
    logger.info(f'4, {get_color(*img[500][900])}, {t}')
    # запись в файл 1 раз в секунду
    # формат: номер точки, цвет, время
    time.sleep(1)
 
  • Мне нравится
Реакции: Noor

Владимир Кучеров

Новичок
Пользователь
Ноя 27, 2020
2
0
1
Огромное спасибо!
Чтобы не думали что Советы ушли в пустоту, отпишусь по успешной реализации.
Ещё раз большое человеческое спасибо!
 

Форум IT Специалистов