python cv2 matchtemplate用于相同形状的不同颜色

时间:2017-09-14 15:00:09

标签: python colors cv2 matchtemplate

我尝试使用opencv2进行matchtemplate。

这是我正在搜索的模板和屏幕: screen_template

这是我用来匹配模板的代码:

import cv2
import numpy as np
img_bgr = cv2.imread("screen.png")
img_gray = cv2.cvtColor(img_bgr,cv2.COLOR_BGR2GRAY)
template = cv2.imread("red.png",0)
w,h = template.shape[::-1]

res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.4
loc = np.where(res>=threshold)

for pt in zip(*loc[::-1]):
    cv2.rectangle(img_bgr,pt,(pt[0]+w,pt[1]+h),(0,255,255),2)

cv2.imshow("detected",img_bgr)
cv2.waitKey(0)
cv2.imwrite('img_bgr.png',img_bgr)
cv2.imwrite('gray_image.png',img_gray)

当我使用0.4的阈值时,我得到了这个结果: result

即使我使用的是红色典当模板,opencv2也仅与0.4阈值的蓝色棋子匹配。

0 个答案:

没有答案