Я только начал учиться программировать 3 месяца go, поэтому извините, если этот вопрос звучит глупо. Здесь я пытаюсь заставить мой компьютер нажимать левую кнопку каждые 5 секунд, не останавливая пока l oop, чтобы он продолжал читать с экрана.
Я пытался использовать time.sleep (5) (но он останавливает функцию), и этот py.click (x, y, clicks = 2, interval = 5) 'делает то же самое.
import numpy as np
from PIL import ImageGrab
import cv2
import time
import pyautogui as py
def screen_record():
while True:
printscreen1 = np.array(ImageGrab.grab(bbox=(0, 40, 800, 600)))
printscreen2 = np.array(ImageGrab.grab(bbox=(0, 40, 800, 600)))
diff = cv2.absdiff(printscreen1, printscreen2)
grey = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(grey, (5, 5), 0)
_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)
dilated = cv2.dilate(thresh, None, iterations=3)
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
(x, y, w, h) = cv2.boundingRect(contour)
if cv2.contourArea(contour) < 700:
continue
else:
# py.click(x, y, clicks=2, interval=5)
# time.sleep(5)
cv2.rectangle(printscreen1, (x, y), (x + w, y + h), (0, 255, 0), 2)
# cv2.drawContours(printscreen1, contours, -1, (0, 255, 0), 2)
cv2.imshow('feed', printscreen1)
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
screen_record()