我正在创建一个使用OpenCV和其他Python库来抓取某人屏幕区域的应用程序,并将其与模板图像进行比较。这段代码完美无缺,直到" dst"线。那时我收到了错误
141 825 3 141 825 3 OpenCV错误: 输入参数的大小不匹配 (该操作既不是'数组操作 阵列' (其中数组具有相同的数据 大小和相同数量的频道), 也不是'阵列操作标量',也不是'标量操作 阵列&#39)
通常我会认为这个错误是因为图像尺寸不同而引起的。但它们完全相同。我通过打印它们的高度,宽度和深度来证实这一点。如您所见,它们完全相同。
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)
有什么想法吗?
答案 0 :(得分:3)
您的img
和player
图片尺寸不同。