Python OpenCV错误:输入参数大小不匹配

0 投票
1 回答
11941 浏览
提问于 2025-04-17 20:21

我正在创建一个应用程序,使用OpenCV和其他Python库来抓取某个人屏幕上的一个区域,并将其与一个模板图像进行比较。这段代码在“dst”这一行之前运行得很好。但在这一行,我收到了一个错误提示:

141 825 3 141 825 3 OpenCV错误: 输入参数的大小不匹配 (这个操作既不是'数组操作数组'(数组的大小和通道数都相同), 也不是'数组操作标量',也不是'标量操作数组')

通常我会认为这个错误是因为图像大小不同造成的。但它们的大小完全相同。我通过打印它们的高度、宽度和深度来确认这一点。正如你在上面看到的,它们是完全一样的。

import win32api, win32con, win32gui
import os
import sys
import time
import Image
import ImageGrab

import cv2
import numpy as np

player = cv2.imread('./images/bg_eagle_player.png')

#User Settings:
SaveDirectory=r'C:\Users\something\somethingeelse'

while (1):
    img=ImageGrab.grab()
    saveas=os.path.join(SaveDirectory,'test.png')
    img.save(saveas)

    img = cv2.imread('test.png')
    player_border = img[436:577, 378:1203]

    height, width, depth = player.shape
    print height, width, depth

    height, width, depth = player_border.shape
    print height, width, depth

    dst = cv2.addWeighted(player,0.7,img,0.3,0)

    cv2.imshow('image',dst)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    time.sleep(0.1)

有什么想法吗?

1 个回答

3

你的 img 图片和 player 图片的大小似乎不一样。

撰写回答