Имеется следующая функция по поиску изображения в изображении:
def find_img(template_path,sleep):
img_rgb = pyautogui.screenshot() # Скриншот текущего экрана
img_rgb.save('D:/images/general.jpg')
img_rgb = cv2.imread('D:/images/general.jpg') # Шаблон
template = cv2.imread(template_path) # Изображение, искомое в шаблоне
w, h = template.shape[:-1]
res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF_NORMED)
if str(res[0]) != '[1. 1. 1. ... 1. 1. 1.]':
threshold = .7
loc = np.where(res >= threshold)
# Проверка совпадения
for pt in zip(*loc[::-1]):
x = int(pt[0])
y = int(pt[1])
print(x, y) # Координаты совпадения
pyautogui.moveTo(x, y, duration=0.7) # Переход по координатам
pyautogui.click()
time.sleep(sleep) #Ожидание sleep секунд.
break
else:
print('Image not found')
Что она делает?
Выполняет скриншот экрана и сохраняет его в файл general.jpg, затем ищет в нём другое изображение и, в случае успеха, передвигает курсор мыши и делает клик; в случае неудачи выводит Image not found. Грубо говоря, ищет на экране кнопку и нажимает её.
Мне надо сделать так, чтобы он пытался найти на экране кнопку до тех пор, пока не найдёт. Точнее пока нет кнопки поражения, находить другие кнопки и нажимать их, а когда появится кнопка поражения, цикл заканчивает свою работу.
Возможно ответ очень лёгок и я не вижу чего-то очевидного, но прошу помочь в решении этой задачи.