我正在尝试解决此问题。我是Python新手。
代码:
import numpy as np
import cv2
from mss.linux import MSS as mss
from PIL import Image
import time
import pyautogui as pg
import imutils
import mss
import numpy
import pyautogui
avarage = [0, ]
poplovok = cv2.imread('poplovok.png')
w, h = poplovok.shape[::-1]
base_screen = ImageGrab.grab(bbox=(0, 0, 1152, 880))
base_screen.save('/Users/vk/PycharmProject/bototest/base_screen.png')
img_rgb = cv2.imread('base_screen.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2BGRA)
res = cv2.matchTemplate(img_gray, poplovok, cv2.TM_CCOEFF_NORMED)
loc = np.where(res >= 0.7)
for i in range(40):
try:
clean_screen = ImageGrab.grab(bbox=(x, y, x + w, y + h))
mean = np.mean(clean_screen)
dif = avarage[-1] - mean
print(avarage[-1] - mean)
except:
for pt in zip(*loc[::-1]):
x = int(pt[0])
y = int(pt[1])
time.sleep(0.2)
错误:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9DZWNYSS5wbmcifQ==” alt =“在此处输入图像描述”>
图像poplovok.png
具有2个以上尺寸。要只关心宽度和高度,而忽略其他宽度和高度,请使用:
w, h, *_ = poplovok.shape[::-1]