好用,易用,高效,稳定 基于opencv 的 图像模板匹配 - python 实现

        在定位、搜索固定界面图块时,经常用到模板匹配,opencv自带的图像模板匹配好用,易用,高效,稳定,且有多种匹配计算方式。

具体示例如下:

模板图:

待搜索图:

具体实现代码如下:

#-*-coding:utf-8-*-
# date:2024-06
# Author: DataBall
# function: 图像模板匹配
import cv2
import osdef match_image_block(img_model,img):h,w = img_model.shape[:2]res_match = cv2.matchTemplate(img_model, img, cv2.TM_CCOEFF_NORMED) # 图像模板匹配gminval, gmaxval, gminloc, gmaxloc = cv2.minMaxLoc(res_match)score_ = gmaxvalx,y = gmaxloc[0],gmaxloc[1]return score_,[x,y,x+w,y+h] # 返回模板匹配分数 和 搜索坐标框if __name__ == "__main__":img_model = cv2.imread("image/model.png") # 模板图img = cv2.imread("image/img.png") # 待搜索图score_,(x1,y1,x2,y2) = match_image_block(img_model,img)print("score:{:.2f},(x1,y1,x2,y2):{}".format(score_,(x1,y1,x2,y2))) # 打印模板匹配分数 和 搜索坐标框# 模板搜索结果可视化图片显示cv2.rectangle(img, (x1,y1), (x2,y2), (255, 0, 155), 6)cv2.rectangle(img, (x1,y1), (x2,y2), (0, 255, 0), 2)cv2.namedWindow("img_model",0)cv2.imshow("img_model",img_model)cv2.imshow("image",img)cv2.waitKey(0)

脚本执行log如下:

score:0.84,(x1,y1,x2,y2):(810, 101, 869, 164)

可视化匹配搜索框如下:

​​

助力快速掌握数据集的信息和使用方式。

数据可以如此美好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/445081.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI智能化问答:自然语言处理技术的重要应用

自然语言处理(NLP)是人工智能领域的一个重要分支,它致力于使计算机能够理解、解释和生成人类语言。 问答系统作为NLP的一个重要应用,能够精确地解析用户以自然语言提出的问题,并从包含丰富信息的异构语料库或专门构建…

AVLTree 旋转笔记(根据平衡因子插入的公式,贼好理解)

平衡因子 avltree是一棵每个节点的左右子树的高度差不超过1的二叉树搜索树,对于avltree最重要的就是对平衡因子的控制。 对于旋转我们重点要注意的是三个节点,以左旋举例,需要注意的就是parent,subr,subrl。而旋转的方…

Ubuntu安装Apache教程

系统版本:Ubuntu版本 23.04 Ubuntu是一款功能强大且用户友好的操作系统,而Apache是一款广泛使用的Web服务器软件。在Ubuntu上安装Apache可以帮助用户搭建自己的网站或者进行Web开发。为大家介绍如何在Ubuntu上安装Apache,并提供详细的教程和操…

微软推出最新 Azure 虚拟机 ND H200 v5 系列

声明:本文翻译自微软全球官方博客,ND H200 v5 系列虚拟机目前只在 Microsoft Azure 海外版上发布。 随着人工智能领域的高速发展,企业对于可扩展和高性能基础设施的需求呈指数级增长。客户需要 Azure AI 基础设施来开发智能驱动的创新解决方案…

C语言读取data.json文件并存入MySQL数据库小案例

本地有一个data.json文件 data.json [{"id": 1,"name": "Alice","age": 30},{"id": 2,"name": "Bob","age": 25} ]要将 data.json 文件中的数据存储到 MySQL 数据库中,首先需要…

【排序算法】快速排序、冒泡排序

文章目录 快速排序1.hoare版本(左右指针法)时间复杂度、空间复杂度分析优化——三数取中法2.挖坑法3.前后指针版本优化:小区间优化快速排序非递归代码——借助栈 冒泡排序时间复杂度 快速排序 1.hoare版本(左右指针法&#xff09…

【大学学习-大学之路-回顾-电子计算机相关专业-学习方案-自我学习-大二学生(2)】

【大学学习-大学之路-回顾-电子&计算机相关专业-学习方案-自我学习-大二学生(2)】 1、前言2、总体说明1-保证课程原因1:原因2: 2-打比赛3-自我适应 - 享受大学生活 3、 保证课程1、英语课程2、专业课程3、其他课程 4、 打比赛…

金融大数据平台总体技术

目录 金融大数据平台应用场景风险管理 场景描述解决方案​​​​​​​市场营销 ​​​​​​​场景描述解决方案​​​​​​​金融大数据信息价值链​​​​​​​金融大数据平台总体目标金融大数据平台功能技术要求​​​​​​​ ​​​​​​​概述数据接入功能要求 ​​…

【C语言】深入理解指针(二)(上)

本篇博客将讲解的知识: (1)指针的使用和传址调用 (2)数组名的理解 1、指针的使用和传址调用 (1)strlen 的模拟实现 库函数strlen的功能是求字符串的长度,统计的是字符串中‘\0’之…

【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版

文章目录 一、背景描述二、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入(二) 特征工程(三) 样本分区(四) 模型训练和评估(五) 模型可视化 三、总结 一、背景描述 股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因…

如何在Visual Studio 2019中创建.Net Core WPF工程

如何在Visual Studio 2019中创建.Net Core WPF工程 打开Visual Studio 2019,选择Create a new project 选择WPF App(.Net Core) 输入项目名称和位置,单击Create 这样我们就创建好了一个WPF工程 工程文件说明 Dependencies 当前项目所使用的依赖库&…

Java的IO操作与文件的基本常识

首先什么是IO操作呢? IO操作其实解释操作硬盘 1. 文件系统操作 创建文件,删除文件,重命名文件,创建目录…操作 2. 文件内容操作 进行读与写操作 先来了解一下基本的文件知识方便学习接下来的IO操作 文件路径 文件路径是从数根节点触发,沿着树杈一直往下走,到达目标文件…

刚转Mac的新手如何卸载不需要的应用程序

最开始转Mac系统的时候很是苦恼,到底该怎么卸载App啊,App直接拖到废纸篓真的能卸载干净吗,卸载App时会不会留下一些文件残留,慢慢的会不会占满内存,于是我找到了一个免费的卸载工具——XApp。 这是一款Mac应用程序卸载…

定时任务实现

1、定时任务概述 定时任务是一种自动化执行特定操作的方式,可以根据预定的时间、日期或间隔周期性地执行某些任务。 定时任务的作用? 自动化任务执行:定时任务能够在预定的时间触发执行某些任务,无需人工干预。这对于需要定期执…

有趣的python库:用 difflib 实现文本差异的可视化

一,介绍 difflib 模块是Python标准库的一部分,提供了一系列用于比较序列的类和函数,特别适用于文本比较任务。这个模块可以帮助用户发现两个文本文件或字符串序列之间的差异,并以多种格式展示这些差异,比如这样&#…

关于Java部署项目,文件上传路径问题 、Windows是\ linux是/

Windows是\ linux是/ ,踩坑。报错如下:

了解郑州自闭症寄宿学校:提供专业康复服务与关怀

在自闭症儿童的教育与康复领域,寄宿学校以其独特的教育模式和全面的关怀体系,为众多家庭提供了重要的支持。而在众多寄宿学校中,广州的星贝育园自闭症儿童寄宿制学校以其专业的康复服务和无微不至的关怀,成为了众多自闭症儿童及其…

【AGC005D】~K Perm Counting(计数抽象成图)

容斥原理。 求出f(m) ,f(m)指代至少有m个位置不合法的方案数。 怎么求? 注意到位置为id,权值为v ,不合法的情况,当且仅当 v idk或 v id-k 因此,我们把每一个位置和权值抽象成点 ,不合法的情况之间连一…

BEC商务英语高级相当于托福多少分?柯桥英语等级考试

虽然托福与BEC没有官方的换算标尺,但是我们可以用雅思作为桥梁来进行换算。 ETS发布托福和雅思分数换算表的主要目的是帮助申请人更好的对比这两种考试的成绩,以便于申请工作展开。官方版本的雅思与托福分数换算表如下: 由于BEC与雅思是同属…

STM32 BootLoader 刷新项目 (七) 获取芯片ID-0x53

STM32 BootLoader 刷新项目 (七) 获取芯片ID-0x53 1. 概述 前面的一系列文章中,我们介绍了整体的BootLoader的一个方案,现在我们针对该BootLoader设计多个命令,下面我们来讲述获取芯片ID的命令-0x53。 1.1 芯片Device ID和类型ID描述 STM3…