Python (pyautogui) отлавливать происходящее на экране
Как отлавливать происходящее на экране быстро?
import pyautogui
template = pyautogui.locateOnScreen('screen.png')
print(template)
Работает очень долго. Я хочу делать скриншот экрана и проверять, есть ли на нем нужные мне фрагменты изображения. Есть какие-то более быстрыые способы?
Ответы (1 шт):
Автор решения: rplfv
→ Ссылка
Этот код работает быстрее, он закрашивает найденное изображение на картинке. Как мне сделать проверку и если элемент есть - print(1), а если нет print(2)
import cv2
method = cv2.TM_SQDIFF_NORMED
small_image = cv2.imread('screen.png')
large_image = cv2.imread('my_screenshot.png')
result = cv2.matchTemplate(small_image, large_image, method)
mn,_,mnLoc,_ = cv2.minMaxLoc(result)
MPx,MPy = mnLoc
trows,tcols = small_image.shape[:2]
h = (MPx + tcols//2)
v = (MPy + trows//2)
cv2.line(large_image, (MPx, (MPy+MPy+trows)//2), (MPx+tcols, (MPy+MPy+trows)//2), (0,255,255), thickness=20, lineType=8, shift=0)
cv2.imshow('one', large_image)
cv2.imwrite('one.jpg', large_image)
cv2.waitKey(0)