# 导入所需库文件,numpy和cv2。
import cv2
import numpy as np
# 加载原始图像和要搜索的图像模板
img = cv2.imread('wife.jpg')
# OpenCV对原始图像进行处理,创建一个灰度版本
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 加载将要搜索的图像模板#记录图像模板的尺寸
template = cv2.imread('template2.jpg',0)
# 记录模板尺寸
w, h, = template.shape[::-1]#输出前两列
# 在灰度图像里进行处理和查找匹配。然后使用相同的坐标在原始图像中进行还原并输出。
# cv2.matchTemplate(image, templ, method[, result])
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED) #TM_CCOEFF_NORMED是标准相关性系数匹配,matchtemplate常用方法
# 设定阈值
threshold = 0.7
# 输出res大于70%的
loc = np.where( res >= threshold)
# 使用灰度图像中的坐标对原始RGB图像进行标记
for pt in zip(*loc[::-1]):
cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (7,249,151), 2)
# 显示图像
cv2.imshow('matchTemplate.jpg', img)
# save图像
cv2.imwrite('matchTemplate.jpg', img)
Q&A
Q1:cv2.imread()
A1:
cv2.imread()读取图片,第二个参数:
- cv2.IMREAD_CO