У меня есть этот код:
import cv2
import numpy as np
import pyautogui
import time
#image recognition
def imagesearch(image, precision=0.8):
im = pyautogui.screenshot()
img_rgb = np.array(im)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread(image, 0)
template.shape[::-1]
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
if max_val < precision:
return [-1,-1]
return max_loc
#continuous image searching on screen
def imagesearch_loop(image, timesample, precision=0.8):
pos = imagesearch(image, precision)
while pos[0] == -1:
print(image+" not found, waiting")
time.sleep(timesample)
pos = imagesearch(image, precision)
return pos
pos = imagesearch_loop("Bonus_Box.png", 0.5)
while not (imagesearch_loop("Bonus_Box.png", 0.5)):
print("Hello")
#do things..., after everything finishes and no image found return to while
print("image found ", "x:", pos[0], "y:", pos[1])
Я пытаюсь сделать цикл в соответствии с условием.Хотя это не imagesearch_loop("Bonus_Box.png", 0.5)
Я хочу заставить что-то делать, но после того, как все закончится, и мое изображение больше не будет найдено на экране, я хочу вернуться к while not (imagesearch_loop("Bonus_Box.png", 0.5)):
, чтобы начать поиск снова.
Спасибо за ваше время