如何避免此 Python 代码中的错误?
How to avoid an error in this Python code?
我正在尝试解决这个问题。我是 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)
错误:
图像 poplovok.png
的维度超过 2 个。要只关心宽度和高度而忽略其他,请使用:
w, h, *_ = poplovok.shape[::-1]
_
意味着你不关心变量,*
将所有剩余的维度都吞噬到 _
。
我正在尝试解决这个问题。我是 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)
错误:
图像 poplovok.png
的维度超过 2 个。要只关心宽度和高度而忽略其他,请使用:
w, h, *_ = poplovok.shape[::-1]
_
意味着你不关心变量,*
将所有剩余的维度都吞噬到 _
。