Изображение внутри изображения не найдено
Я делаю бот-кликер, чтобы щелкнуть изображение на экране с помощью PIL. Прямо сейчас я сталкиваюсь с проблемой, когда код не может найти изображение на экране. Я даже пытался найти экран внутри экрана, но безрезультатно.
Вот код, который используется для поиска изображения:
def find(find_url, in_url):
from PIL import Image
in_img = Image.open(in_url)
in_px = in_img.load()
in_x, in_y = in_img.size
find_img = Image.open(find_url)
find_px = find_img.load()
find_x, find_y = find_img.size
br = False
img_starts = []
if not find_x > in_x and not find_y > in_y:
for x1 in range(0, in_x - find_x):
for y1 in range(0, in_y - find_y):
for x2 in range(-1, find_x):
if br:
br = False
break
for y2 in range(-1, find_y):
r1, g1, b1 = in_px[x1 + x2, y1 + y2]
r2, g2, b2 = find_px[x2, y2]
if not (r1 == r2 and g1 == g2 and b1 == b2):
br = True
break
else:
print(x1 + x2, y1 + y2)
if x2 == find_x and y2 == find_y:
img_starts.append(f'{x1 + x2}, {y1 + y2}')
return img_starts
else:
print(f"{find_img} is too large to fit within {in_img}")
if __name__ == '__main__':
find()
Вот код, который вызывает ImgFind.find():
from PIL import ImageGrab, Image
import ImgFind
import os
import time
man_url = 'find_the_man.png'
screen_url = 'screen.png'
#time.sleep(10)
#screen_img = ImageGrab.grab()
#screen_img.save('screen.png')
print(ImgFind.find(man_url, screen_url))
Вот изображения:
Мой экран:
Изображение для поиска: