在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”