В общем ChatGpt сделал такой код, вроде все работает но работает очень долго сканирует, иногда может сканировать и 3 секунды и 5 секунд, суть скрипта-Он должен протыкивать определенную клавишу и если при протыкивание определенной клавиши она загорается оранжевым то она должна удерживать в течение одной секунды
import keyboard
import time
import numpy as np
import mss
import cv2
# Определяем пороговые значения цветового диапазона для оранжевого
ORANGE_LOWER = np.array([255, 160, 1]) # Минимальные значения в BGR
ORANGE_UPPER = np.array([255, 180, 3]) # Максимальные значения в BGR
# Клавиши для поочередного нажатия
keys = ['s', 'w', 'q', 'r', 'b', 'h', 'e', 'd', 'shift', 'space', 'up', 'left', 'down', 'right']
current_key_index = 0
# Функция для захвата экрана и проверки наличия оранжевого цвета
def check_orange_color():
with mss.mss() as sct:
monitor = {"top": 0, "left": 0, "width": 800, "height": 600}
img = sct.grab(monitor)
img_np = np.array(img)
img_np = cv2.cvtColor(img_np, cv2.COLOR_BGRA2BGR)
hsv_image = cv2.cvtColor(img_np, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv_image, ORANGE_LOWER, ORANGE_UPPER)
return cv2.countNonZero(mask) > 0
def main():
global current_key_index
while True:
current_key = keys[current_key_index]
# Нажимаем клавишу
keyboard.press(current_key)
print(f"Зажата клавиша: {current_key}")
# Проверка на наличие оранжевого цвета
while True:
if check_orange_color():
print(f"Оранжевый цвет обнаружен! Продолжаем зажимать '{current_key}'")
break # Выходим из цикла, когда оранжевый цвет обнаружен
time.sleep(0.05) # Проверяем цвет каждые 100 мс
# Отпускаем клавишу
keyboard.release(current_key)
print(f"Клавиша '{current_key}' отпущена")
# Переход к следующей клавише
current_key_index = (current_key_index + 1) % len(keys)
time.sleep(0.05) # Задержка перед переключением
if __name__ == "__main__":
main()