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

Python OpenCV错误:输入参数的大小不匹配,python,opencv,Python,Opencv,我正在创建一个应用程序,它使用OpenCV和其他Python库获取某个人屏幕的某个区域,并将其与模板图像进行比较。在“dst”行之前,此代码工作正常。在那一点上,我收到了错误 141 825 3 141 825 3 OpenCV错误: 输入参数的大小不匹配 (该操作既不是“数组操作” 数组“”,其中数组具有相同的 尺寸和相同数量的通道), 也不是“数组运算标量”,也不是“标量运算” 数组') 通常我会认为这个错误是由于不同的图像大小引起的。但它们完全一样。我通过打印它们的高度、宽度和深度来确认这

我正在创建一个应用程序,它使用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)

有什么想法吗?

你的
img
player
图像大小不一。

你的
img
player
图像大小不一。

你的
img
player
图像大小不一。

你的
img
player
图像看起来大小不同。

两幅图像的高度、宽度和深度(141 825 3、141 825 3)表明情况并非如此。您检查
img
player\u边框的大小相同,但在
img
player
上调用
addWeighted()
。那也是同样的尺寸吗?谢谢,就是这样。这让我很尴尬。嘿,我曾经花了大约四个小时试图修复一个数据库程序,因为我遗漏了一对括号。我一直盯着代码,告诉自己我正在向数据库提交,而实际上我并没有调用这个方法!这两幅图像的高度、宽度和深度(141 825 3、141 825 3)表明情况并非如此。您检查
img
player\u border
的大小相同,但在
img
player
上调用
addWeighted()
。那也是同样的尺寸吗?谢谢,就是这样。这让我很尴尬。嘿,我曾经花了大约四个小时试图修复一个数据库程序,因为我遗漏了一对括号。我一直盯着代码,告诉自己我正在向数据库提交,而实际上我并没有调用这个方法!这两幅图像的高度、宽度和深度(141 825 3、141 825 3)表明情况并非如此。您检查
img
player\u border
的大小相同,但在
img
player
上调用
addWeighted()
。那也是同样的尺寸吗?谢谢,就是这样。这让我很尴尬。嘿,我曾经花了大约四个小时试图修复一个数据库程序,因为我遗漏了一对括号。我一直盯着代码,告诉自己我正在向数据库提交,而实际上我并没有调用这个方法!这两幅图像的高度、宽度和深度(141 825 3、141 825 3)表明情况并非如此。您检查
img
player\u border
的大小相同,但在
img
player
上调用
addWeighted()
。那也是同样的尺寸吗?谢谢,就是这样。这让我很尴尬。嘿,我曾经花了大约四个小时试图修复一个数据库程序,因为我遗漏了一对括号。我一直盯着代码,告诉自己我正在向数据库提交,而实际上我并没有调用这个方法!