模板匹配Template Matching

news/2024/10/28 20:22:27/

 实现代码:

import cv2
import numpy as np
def template_demo(tpl,target):methods=[cv2.TM_SQDIFF_NORMED,cv2.TM_CCORR_NORMED,cv2.TM_CCOEFF_NORMED]th,tw=tpl.shape[:2]for md in methods:start_time=cv2.getTickCount()# 匹配结果result=cv2.matchTemplate(target,tpl,md)# 对匹配结果进行分析min_val,max_val,min_loc,max_loc=cv2.minMaxLoc(result)if md==cv2.TM_SQDIFF_NORMED:tl=min_locelse:tl=max_loc# 矩形右下角的点的坐标br=(tl[0]+tw,tl[1]+th)# 画矩形cv2.rectangle(target,tl,br,(0,0,255),2)cv2.imshow("match-"+str(md),target)print("method: %d, time: %d ms"%(md,(cv2.getTickCount()-start_time)*1000/cv2.getTickFrequency()))tpl=cv2.imread("./template.png")
print(tpl.shape)
target=cv2.imread("./target.png")
print(target.shape)
cv2.namedWindow("template image",cv2.WINDOW_NORMAL)
cv2.imshow("template image",tpl)
cv2.namedWindow("target image",cv2.WINDOW_NORMAL)
cv2.imshow("target image",target)
template_demo(tpl,target)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:


http://www.ppmy.cn/news/597907.html

相关文章

行列转换(一)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 行列转换 • Mysql版 1.准备操作2.行转列1.1为何进…

Cartographer自定义lua参数的方法

Cartographer中, 配置参数大多数都是从lua文件中得到的, 不是像其他的开源框架大多使用xml等文件进行参数配置. 假如我们要配置一个名字是rotation_condition的配置参数在pose_graph_2d.cc中, 想要使用方法为 options_.translation_condition()配置步骤如下: 1. 修改proto文件…

Edge浏览器可以多开吗?

问答链接:Edge浏览器可以多开吗? 可以。 如果你的edge浏览器是默认路径安装的,那么打开命令提示符窗口输入以下两条命令即可启动一个数据完全隔离的edge浏览器。 mkdir C:\logs001 "C:\Program Files (x86)\Microsoft\Edge\Applicati…

23种设计模式的简单理解

23种设计模式的设计原则为: 1、开闭原则 2、单一职责原则 3、依赖倒置原则 4、里氏替换原则 5、迪米特原则(最小知道原则) 6、组合复用原则 23种设计模式可分为三种大的类型 一、创建型…

计算机应用大专生简历,计算机应用大专生简历范文

以下是无忧考网为大家整理的关于计算机应用大专生简历范文的文章,希望大家能够喜欢! 基本资料 姓  名: 林女士 性  别: 女 民  族: 汉族 出生日期: 1988年08月20日 户  口: 安徽省 学 …

大专生计算机水平个人简历,2011计算机大专生简历范文

姓  名: 林女士 性  别: 女 民  族: 汉族 出生日期: 1988年08月20日 户  口: 安徽省 学  历: 大专 技术职称: 高级 毕业院校: 安庆职业技术学院 所学专业: 计算…

MySQL笔记详解

MySQL – 2021 文章目录 MySQL[toc]1.介绍1.1 mysql的特点1.2 SQL语言的组成1.3 非关系型数据库 2. 数据库操作2.1 数据库的常用操作(DDL)2.2 数据库表的操作(DDL)2.3 数据库的基本操作(DML)2.3.1 数据插入:insert2.3.2 数据修改:update2.3.3 数据删除&…

javascript高级(三)

函数 创建函数的三种方式 1.function声明的普通函数(命名函数) 2.函数表达式(匿名函数) 3.new Function() var fn new Function(‘参数1’,‘参数2’,…,函数体); Function()里面的参数都是字符串格式 所有的函数…