首页 > 解决方案 > 如何避免此 Python 代码中的错误?

问题描述

我正在尝试解决这个问题。我是 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)

错误:

在此处输入图像描述

标签: pythoncv2

解决方案


图像poplovok.png具有超过 2 个维度。要只关心宽度和高度,而忽略其他,请使用:

w, h, *_ = poplovok.shape[::-1]

_意味着您不关心变量,并将*所有剩余的维度吞食到_.


推荐阅读