Python-OpenCV 笔记9 -- 模板匹配

Python-OpenCV 笔记9 – 模板匹配


1、模板匹配:matchTemplate()

函数原型:

matchTemplate(image, templ, method[, result[, mask]])

参数:

  • image:待搜索图像,数据类型必须是8位或32位浮点数
  • templ:搜索模板,它必须不大于待搜索图像并具有相同的数据类型
  • method:匹配的方法
    • cv2.TM_SQDIFF:平方差匹配法,结果值越小越匹配
    • cv2.TM_SQDIFF_NORMED:归一化平方差匹配法,结果值在 [0, 1],越小越匹配
    • cv2.TM_CCOPP:相关匹配法
    • cv2.TM_CCOPP_NORMED:归一化相关匹配法 在这里插入图片描述
  • result:存放结果的图像,必须为单通道32位浮点数类型
  • mask:搜索模板的掩码图,它必须与 templ 具有相同的数据类型和大小,默认不设置。目前仅支持 TM_SQDIFF和 TM_CCORR_NORMED 方法

返回:
每个像素点(对应模板的左上角点)进行一次匹配,待搜索图大小:W×H 模板大小:w×h,结果图大小: (W−w+1)×(H−h+1)


2、示例

import cv2
import numpy as np

# 读取待搜索图
src_img = cv2.imread('src.jpg', 0)
template_img = cv2.imread('templ.jpg', 0)
w, h = template_img.shape[::-1]
res = cv2.matchTemplate(src_img, template_img, cv2.TM_CCOEFF_NORMED)
threshold = 0.7
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
	cv2.rectangle(src_img, pt, (pt[0] + w, pt[1] + h), 255, 2)   
cv2.imshow('match', src_img)
cv2.waitKey()
cv2.destroyAllWindows()

GOOD LUCK!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值