Python 通过截图匹配原图中的位置(opencv)实例

Python 通过截图匹配原图中的位置(opencv)实例攻略

本文将介绍使用Python中的OpenCV库对原图进行截图匹配,并得到该截图在原图中的位置坐标的方法。OpenCV是一个基于开源发行的跨平台计算机视觉库,常用于图像和视频的处理。

步骤一:导入依赖库

首先需要导入相关的库,在这个实例中,需要导入numpy和OpenCV库,使用命令:

import numpy as np
import cv2

步骤二:加载原图和截图

要进行截图的匹配,首先需要加载原图和截图。在这个实例中,我们要匹配的截图是一个"match.png"图片,在与此同时,我们也将加载"original.png"这个原始图片:

original = cv2.imread('original.png')
match = cv2.imread('match.png')

步骤三:获取截图在原图中的位置

获取匹配截图在原图中的位置是这个实例的重点。需要使用OpenCV的模板匹配功能进行实现。模板匹配就是在一个较大的图像中搜索另外一个模板图像的位置。

使用cv2.matchTemplate()函数实现模板匹配,并使用最大匹配函数cv2.minMaxLoc()来获取最大的相似度以及匹配位置。

result = cv2.matchTemplate(original, match, cv2.TM_CCOEFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)

其中,cv2.TM_CCOEFF是OpenCV的匹配算法之一,可以提高精准度。

步骤四:在原图上标记匹配位置

得到截图在原图中的位置后,我们就可以在原图上标记出匹配的区域。使用cv2.rectangle()函数在原图中绘制一个矩形框,将截图匹配的区域框出来。

cv2.rectangle(original, top_left, bottom_right, (0,0,255), 2)

其中,(0,0,255)表示矩形框的颜色,2代表线条的宽度。

示例一

以下示例展示如何在一张草地中匹配一张草青虫的截图,并将匹配位置在原图上标记出来:

#导入库
import numpy as np
import cv2

#读取原图和截图
original = cv2.imread('grass.png')
match = cv2.imread('caterpillar.png')

#获取截图的宽高
w, h = match.shape[:-1]

#在原图中查找截图的位置
result = cv2.matchTemplate(original, match, cv2.TM_CCOEFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)

#在原图上标记匹配位置
cv2.rectangle(original, top_left, bottom_right, (0,0,255), 2)

#显示原图
cv2.imshow("Result", original)
cv2.waitKey(0)

示例二

以下示例展示如何在一张白色背景中匹配一张小猫的截图,并将匹配位置在原图上标记出来:

#导入库
import numpy as np
import cv2

#读取原图和截图
original = cv2.imread('white.png')
match = cv2.imread('cat.png')

#获取截图的宽高
w, h = match.shape[:-1]

#在原图中查找截图的位置
result = cv2.matchTemplate(original, match, cv2.TM_CCOEFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)

#在原图上标记匹配位置
cv2.rectangle(original, top_left, bottom_right, (0,0,255), 2)

#显示原图
cv2.imshow("Result", original)
cv2.waitKey(0)

以上就是本实例使用Python的OpenCV库实现截图匹配的详细攻略,希望对大家有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 通过截图匹配原图中的位置(opencv)实例 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 详解Nginx中的重定向功能

    当需要将某个URL地址重定向到另外一个URL地址时,我们就需要使用重定向功能。Nginx是一款高效的Web服务器,它提供了多种重定向方法。本文将详解Nginx中的重定向功能,希望对你有所帮助。 一、Nginx中的重定向 1. 什么是重定向 重定向指的是当用户访问某个URL时,服务器将该URL重定向到另外一个URL的过程。重定向可以帮助我们更好的管理网站内容,…

    人工智能概览 2023年5月25日
    00
  • Python检测网络延迟的代码

    请看下面的完整攻略,包含了Python检测网络延迟代码的详细讲解,并提供了两个示例说明: 背景 在进行网络应用开发时,需要检测网络延迟来判断网络连接的质量,以便做出相应的调整。Python作为一门通用性编程语言,也可以用来实现这一功能。 实现方法 Python中可以使用第三方库进行网络延迟检测,下面将介绍两种主要方法: 方案一:使用ping命令 在Pytho…

    人工智能概论 2023年5月25日
    00
  • 使用Pytorch+PyG实现MLP的详细过程

    对于使用PyTorch和PyG实现MLP,我们可以分为以下几个步骤: 1. 加载数据集 第一步是加载数据集,对于PyG而言,我们可以使用torch_geometric.datasets中的数据集,例如TUDataset、Planetoid等。以下是一个简单的例子,加载Cora数据集: from torch_geometric.datasets import …

    人工智能概论 2023年5月25日
    00
  • 使Nginx服务器支持.htaccess的方法

    要使 Nginx 服务器支持 .htaccess 文件,可以通过以下步骤进行设置: 步骤一:安装 Nginx 首先需要安装 Nginx,具体安装方法可以参考官方文档或者相应的安装教程。 步骤二:修改 Nginx 配置文件 编辑 Nginx 的配置文件,一般在 /etc/nginx/nginx.conf 位置,找到以下代码段: server { listen …

    人工智能概览 2023年5月25日
    00
  • python Web flask 视图内容和模板实现代码

    Python Web 中,Flask 框架的视图函数和模板是实现动态 Web 应用的核心。下面我将为您提供完整的攻略。 一、Flask 视图实现 在 Flask 中,视图函数是用于处理 Web 请求并生成 Web 响应的函数。视图函数通常使用 Flask 提供的装饰器 @app.route() 来将函数绑定到一个 URL 路径上,例如: from flask…

    人工智能概论 2023年5月25日
    00
  • 基于 Django 的手机管理系统实现过程详解

    基于 Django 的手机管理系统实现过程详解 概述 本文将介绍如何使用 Django 框架实现一个手机管理系统。手机管理系统可以用来管理和跟踪手机的库存、销售、维护等信息。我们将分步骤教授如何创建并布置 Django 应用程序,并深入了解应用程序设计下面的一些重要项。 步骤1:创建 Django 应用程序 创建Django项目 在终端中,使用以下命令创建 …

    人工智能概论 2023年5月25日
    00
  • 易语言获取网络图片方法详解

    易语言获取网络图片方法详解 在易语言程序开发中,有时候需要获取并展示一些网络上的图片,那么如何通过易语言获取网络上的图片呢?本文将详细介绍易语言获取网络图片的方法。 方法一:使用WebBrowser控件 在易语言中,我们可以使用WebBrowser控件来访问网页,并获取网页上的图片。具体步骤如下: 在程序中添加WebBrowser控件,并设置其Visible…

    人工智能概论 2023年5月25日
    00
  • Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例

    下面就是关于“Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例”的完整攻略。 安装SQLAlchemy SQLAlchemy是Python中一个流行的ORM框架,可以通过以下命令来安装: pip install sqlalchemy 建立数据库连接 首先,在Python文件中导入SQLAlchemy: from sqlalchemy …

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部