Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在opencv python中匹配模板时发生TypeError_Python_Opencv_Numpy_Typeerror_Template Matching - Fatal编程技术网

在opencv python中匹配模板时发生TypeError

在opencv python中匹配模板时发生TypeError,python,opencv,numpy,typeerror,template-matching,Python,Opencv,Numpy,Typeerror,Template Matching,我的部分代码是: import pyscreenshot as ImageGrab img=ImageGrab.grab() img = img.load() img = np.array(img) template = cv2.imread('s2_5.jpg',0) res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF) 我收到以下错误消息: Traceback (most recent call last): File "E:\py

我的部分代码是:

import pyscreenshot as ImageGrab
img=ImageGrab.grab()
img = img.load()
img = np.array(img)
template = cv2.imread('s2_5.jpg',0)
res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF)
我收到以下错误消息:

Traceback (most recent call last):  
  File "E:\python\opencv\template_matching.py", line 20, in <module>
  res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF)
TypeError: image data type = 17 is not supported
回溯(最近一次呼叫最后一次):
文件“E:\python\opencv\template\u matching.py”,第20行,在
res=cv2.matchTemplate(img,template,cv2.TM_CCOEFF)
类型错误:不支持图像数据类型=17

您之所以会出现该错误,是因为
img
模板
的类型不同,更重要的是,正如错误消息所说,
img
的类型不受支持


在代码的第20行,
ImageGrab.grab()
返回PIL/枕头图像。因此,您需要先将
img
转换为numpy数组,然后再将其用作
cv2.matchTemplate()

的输入。在第4行,我将该图像转换为numpy数组
img=np.array(img)
@rajinikanth显式转换为
uint8
。现在我遇到了这个错误:
Traceback(最近一次调用):文件“E:\python\opencv\template\u matching.py”,第14行,在img=np.array(img,dtype=np.uint8)TypeError:long()参数必须是字符串或数字,而不是“pixelacess”