1 程序源码
# -*- coding: utf-8 -*-
import numpy as np
import cv2
import sys
import math
import matplotlib.pyplot as plt
img_rgb = cv2.imread('peopleone.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('peopletwo.jpg',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
#umpy.where(condition[, x, y])
#Return elements, either from x or y, depending on condition.
#If only condition is given, return condition.nonzero().
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 1)
#cv2.imwrite('res.png',img_rgb)
cv2.imshow("image",img_rgb)
cv2.imshow("image-template",template)
cv2.waitKey(0)
cv2.destroyAllWindows()
2 原始图片
3结果图片