Python, opencv matchtemplate error



hi i'im试图使用matchtamplate func,但它给出了thar eror

openCV错误:断言失败((depth == 0 || depth == 5(:matchTemplate,文件C: projects opencv-python opencv 模块 imgproc src src src templmatch.cpp,行1102 Trackback(最近的最新电话(: 文件" templatematch.py",第10行,in res = cv2.matchtemplate(img2gray,模板,cv2.tm_ccoeff_normed( cv2.err:c: projects opencv-python opencv 模块 imgproc src src src templmatch.cpp:1102:error:error:(-215((-215((depth == 0 || depth == depth == 5(type == _templ.type((&&_img.dims((< = 2 in Function cv :: matchTemplate

这是Tho代码

import cv2
import numpy as np 
img = cv2.imread("tempmatch1.jpg")
img2gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
template = cv2.imread("tempmatch2.jpg")
w, h,_ = template.shape[::-1]
res = cv2.matchTemplate(img2gray, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.80
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
    cv2.rectangle(img, pt, (pt[0]+w, pt[1]+h), (0,0,255), 2)
cv2.imshow("detected", img)
k= cv2.waitKey(5) & 0xFF
if k==27:
    cv2.destroyAllWindows()

我怀疑该错误告诉您模板与所应用的图像不兼容。在这种情况下,颜色模板和灰度图像。

而不是

res = cv2.matchTemplate(img2gray, template, cv2.TM_CCOEFF_NORMED)

尝试

res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

最新更新