好用,易用,高效,稳定 基于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.mzph.cn/news/882128.shtml

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

相关文章

FreeRTOS - 任务管理

在学习FreeRTOS过程中,结合韦东山-FreeRTOS手册和视频、野火-FreeRTOS内核实现与应用开发、及网上查找的其他资源,整理了该篇文章。如有内容理解不正确之处,欢迎大家指出,共同进步。 参考:https://rtos.100ask.net/zh/…

【C++刷题】力扣-#219-存在重复元素II

题目描述 给定一个整数数组 nums 和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j 使得 nums[i] nums[j] 且 i! j。也就是说,不能有重复的元素。 示例 示例 1: 输入: nums [1,2,3,1], k 3 输出: true示例 2: 输入: nums [1,2,3,1,2,4], k …

SpringColoud GateWay 核心组件

优质博文:IT-BLOG-CN 【1】Route路由: Gateway的基本构建模块,它由ID、目标URL、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。 Route路由-动态路由实现原理: 配置变化Apollo 服务地址实例变化…

H3C设备连接方式

Console线本地连接 协议Serial,接口com口,波特率9600(设备管理器中查看com口) 适用于设备初次调试 使用Telnet远程访问 适用于设备上架配置好后的维护管理 使用SSH远程访问 数据传输过程加密,安全的远程访问

洞察数字化营销的本质

数字化营销,即借助互联网、移动互联网、社交媒体等数字技术与渠道实现营销目标。涵盖市场调研、品牌推广、产品销售到客户服务全过程。 其特点显著。精准定位是一大优势,利用大数据分析和人工智能,深入了解客户需求、兴趣和行为,精…

AdmX_new

0x00前言 因为环境问题,此次靶场都放在vm上。都为NAT模式。 靶机地址: https://download.vulnhub.com/admx/AdmX_new.7z 需要找到两个flag文件。 0x01信息搜集 搜集IP 确认目标IP为172.16.8.131,进一步信息搜集 获取端口开放情况,版本信…

多模态大语言模型(MLLM)-Blip3/xGen-MM

论文链接:https://www.arxiv.org/abs/2408.08872 代码链接:https://github.com/salesforce/LAVIS/tree/xgen-mm 本次解读xGen-MM (BLIP-3): A Family of Open Large Multimodal Models 可以看作是 [1] Blip: Bootstrapping language-image pre-training…

TCP/IP 寻址

TCP/IP 寻址 概述 TCP/IP(传输控制协议/互联网协议)是一组用于数据网络的通信协议。它们定义了数据如何在网络上从一个设备传输到另一个设备。在TCP/IP网络中,每个设备都有一个唯一的地址,称为IP地址,用于标识网络上的设备。本文将深入探讨TCP/IP寻址的概念、类型、分配…

Lua脚本的原子性

Lua脚本之所以被认为是原子性的,主要源于Redis的内部实现机制和Lua脚本的执行方式。以下是对Lua脚本原子性的详细解释: 一、Redis的单线程模型 Redis是一个基于内存、可基于Key-Value等多种数据结构的存储系统,它使用单线程模型来处理客户端的请求。这意味着在任何给定的时…

Vue3中防止按钮重复点击的方式

本文列两种方式&#xff0c;推荐第一种&#xff0c;经过长时间测试第二种防止的还是会漏&#xff0c;这里也列一下 ①使用定时器&#xff08;推荐&#xff09; 判断3秒钟之内方法只能执行一次 <el-button click"handleClick" type"primary" :loading…

二叉树算法之二叉树遍历(前序、中序、后序、层次遍历)

二叉树遍历是指按照某种顺序访问二叉树的所有节点。常见的二叉树遍历方式包括前序遍历&#xff08;Preorder Traversal&#xff09;、中序遍历&#xff08;Inorder Traversal&#xff09;、后序遍历&#xff08;Postorder Traversal&#xff09;和层次遍历&#xff08;Level-or…

stm32 bootloader写法

bootloader写法&#xff1a; 假设app的起始地址&#xff1a;0x08020000&#xff0c;则bootloader的范围是0x0800,0000~0x0801,FFFF。 #define APP_ADDR 0x08020000 // 应用程序首地址定义 typedef void (*APP_FUNC)(void); // 函数指针类型定义 /*main函数中调用rum_app&#x…

Luogu P1528 切蛋糕 || SCOI2005 栅栏

假设最多能满足 x x x个人&#xff0c;那么这 x x x个人一定可以是按照每个人吃蛋糕的需求将他们从小到大排序后的前 x x x个人。&#xff08;有两个人他们吃蛋糕的需求分别为 x 1 x_1 x1​和 x 2 x_2 x2​&#xff0c;且 x 1 < x 2 x_1<x_2 x1​<x2​&#xff0c;如果…

【从零开始的LeetCode-算法】504. 七进制数

给定一个整数 num&#xff0c;将其转化为 7 进制&#xff0c;并以字符串形式输出。 示例 1: 输入: num 100 输出: "202"示例 2: 输入: num -7 输出: "-10"提示&#xff1a; -107 < num < 107 我的解答 class Solution {public String convertT…

大数据存储计算平台EasyMR:大数据集群动态扩缩容,快速提升集群服务能力

在当今的数据驱动时代&#xff0c;组织面临着数据量的爆炸性增长。为了有效管理和存储这些数据&#xff0c;许多组织依赖于 Hadoop 这样的分布式存储系统。Hadoop 集群通过在多个节点上存储数据的冗余副本&#xff0c;提供了高可靠性和可扩展性。然而&#xff0c;随着数据量的不…

【MySQL】提高篇—复杂查询:多表连接(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN)

在关系数据库中&#xff0c;数据通常分散在多个表中。为了获取相关联的数据&#xff0c;需要使用表连接&#xff08;JOIN&#xff09;操作。 表连接允许我们在一个查询中结合多个表的数据&#xff0c;这在实际应用中非常重要。 例如&#xff0c;在一个电商系统中&#xff0c;…

如何更改MySQL的root密码

前言 在管理数据库时&#xff0c;有时可能会忘记MySQL的root用户密码或需要更改默认设置的密码。以下是在Windows环境下更改MySQL root密码的详细步骤。请注意&#xff0c;这些步骤适用于MySQL 5.7及以上版本&#xff1b;对于其他版本&#xff0c;请参考相应版本的文档。 准备…

倪师学习笔记-天纪-易经入门

1、易经-易的意思 变易、变化简易、简单 2、神、象 神&#xff1a;永恒象&#xff1a;一直变&#xff0c;不会重复&#xff0c;但对应的神一样 3、机锋 突发的、短暂的具有预兆功能的事情 4、先天八卦&#xff08;伏羲八卦&#xff09; 特点&#xff1a;为体&#xff0c…

ChatGPT国内中文版镜像网站整理合集(2024/10/06)

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1&#xff0c;支持MJ绘画 ② chat.lify.vip 支持通用全模型&#xff0c;支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4&#xff0c;4o以及MJ绘画 1. 什么是镜像站 镜像站&#xff08;Mirror Site&#xff…

Spring Boot在线考试系统:JavaWeb技术的应用案例

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…