Как повысить скорость приема изображения с экрана OpenCV?
У меня есть код, который в постоянном режиме просматривает области на экране и выполняет определенные действия. Но это происходит относительно долго. Каким образом можно повысить скорость работы кода.
while True:
screenshot = ImageGrab.grab()
frame = np.array(screenshot)
edges = cv2.Canny(frame, 300, 200)
# Дальше функция проверяет определенные области экрана
if not check_for_edges(edges[361:371, 1071:1084], 1369, 387):
break
if not check_for_edges(edges[541:551, 1071:1084], 1369, 470):
break
if not check_for_edges(edges[721:731, 1071:1084], 1369, 551):
break
if not check_for_edges(edges[901:911, 1074:1086], 1369, 632):
break
if not check_for_edges(edges[1081:1091, 1071:1084], 1369, 713):
break
if not check_for_edges(edges[1261:1271, 1164:1176], 1369, 794):
break
if not check_for_edges(edges[1441:1451, 1164:1176], 1369, 875):
break
Функция check_for_edges:
def check_for_edges(edges, x, y):
if cv2.countNonZero(edges) > 0:
pyautogui.click(x, y)
pyautogui.click(buy_x, buy_y)
cntn = input()
if cntn not in ["y", "н"]:
return False
return True
Источник: Stack Overflow на русском