在python中利用opencv简单做图片比对的方法

yizhihongxing
  1. 安装opencv

首先需要安装OpenCV,可以通过命令行或者Anaconda Prompt输入以下命令进行安装:

pip install opencv-python
  1. 导入库

导入库OpenCV,并载入两张待比对的图片

import cv2

img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
  1. 比对图片

使用OpenCV的matchTemplate函数进行图片比对,该函数将返回一副灰度图像,表示模板在输入图像中的匹配情况:

res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
  1. 提取匹配位置及匹配系数

提取匹配位置及匹配系数:

min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

其中min_loc和max_loc表示最小匹配值和最大匹配值所在的位置,max_val即为最大匹配值,也即匹配系数。

  1. 显示比对结果

最后可以把比对结果显示出来,用一个矩形框圈出模板在被比对图片中的位置:

w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)
cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 示例1

下面是一个示例1,用于比对两张刻度尺图片中的相同位置,验证两张图片的尺度是否一致:

import cv2

img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)

cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 示例2

下面是一个示例2,用于比对两张同一张图片的不同位置,验证两个位置的像素是否相同:

import cv2

img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

res = cv2.matchTemplate(img1, img2, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

w, h = img2.shape[:2]
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
cv2.rectangle(img1, top_left, bottom_right, (0, 0, 255), 2)

cv2.imshow('Matched Image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

img3 = img1[200:400, 200:400]
img4 = img1[600:800, 600:800]

res2 = cv2.matchTemplate(img3, img4, cv2.TM_CCOEFF_NORMED)
min_val2, max_val2, min_loc2, max_loc2 = cv2.minMaxLoc(res2)

if max_val2 > 0.9:
   print("The two selected areas are similar")
else:
   print("The two selected areas are different")

以上就是在python中利用opencv简单做图片比对的方法的完整攻略,包含两条示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在python中利用opencv简单做图片比对的方法 - Python技术站

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

相关文章

  • 详解python学习笔记之解释器

    Python解释器是Python语言的核心组件之一,它可以将Python代码转换为机器语言并执行。以下是详解Python学习笔记之解释器的完整攻略,包含两个示例。 示例1:使用Python解释器执行Python代码 以下是一个示例,可以使用Python解释器执行Python代码: 步骤1:安装Python解释器 在使用Python解释器执行Python代码之…

    python 2023年5月15日
    00
  • 在VS Code上搭建Python开发环境的方法

    下面我将为你详细讲解在VS Code上搭建Python开发环境的方法,包括以下几个步骤: 安装VS Code 安装Python解释器 安装VS Code的Python插件 创建一个Python项目 配置Python解释器 运行Python代码 下面我们分别来详细介绍每一步的方法。 步骤一:安装VS Code 首先,你需要下载并安装Visual Studio …

    python 2023年6月3日
    00
  • 用python爬取豆瓣前一百电影

    用Python爬取豆瓣前100电影的完整攻略 在本攻略中,我们将介绍如何使用Python爬取豆瓣前100电影,并提供两个示例。 步骤1:分析网页 在使用Python爬取豆瓣前100电影之前,我们需要先分析网页。我们可以使用Chrome浏览器的开发者工具分析网页。 以下是分析网页的步骤: 打开Chrome浏览器,进入豆瓣电影排行榜页面。 点击开发者工具,进入开…

    python 2023年5月15日
    00
  • Python 分析访问细节

    Python可以利用各种库和工具对网站的访问细节进行分析和解析,以了解有关网站性能和使用情况的详细信息。本文将介绍使用Python进行网站访问分析的完整攻略。 准备工作 在开始Python分析网站访问细节之前,需要安装并导入必要的库和工具。常用的库和工具包括: requests:发送HTTP请求以获取访问网站的响应。 Beautiful Soup:解析HTM…

    python-answer 2023年3月25日
    00
  • 使用 python 在树莓派中进行 I2C 通信

    【问题标题】:I2C communication in raspberry pi using python使用 python 在树莓派中进行 I2C 通信 【发布时间】:2023-04-02 16:24:01 【问题描述】: 我想使用 PYTHON 或最后选择 C ​​为树莓派配置 I2C。我曾在 ATMEL 微控制器上工作过,它提供与任何设备的 I2C 通…

    Python开发 2023年4月8日
    00
  • Python 十大特性

    以下是“Python 十大特性”的完整攻略: 一、Python 十大特性简介 Python 是一种高级编程语言,具有简单易学、可读性强、功能强大等特点。Python 有许多特性,其中十大特性是 Python 最为突出的特点,包括: 简单易学 面向对象 免费开源 可移植性 动态类型 高级语言 大量标准库 可扩展性 解释性 互动性 下面将详细讲解这十大特性。 二…

    python 2023年5月14日
    00
  • Python数学建模StatsModels统计回归之线性回归示例详解

    一、介绍 StatsModels 等数据处理、分析等 Python 库中,最具统计学思维方式的莫过于 StatModels 了。其中的线性回归分析正是一个很好的例子。本文就来详细讲解如何使用 StatsModels 进行线性回归分析。 二、实战演示 1. 导入相关库 我们需要导入的库有: import numpy as np import statsmode…

    python 2023年6月5日
    00
  • PowerShell 指令操作集合(小结)

    PowerShell指令操作集合(小结) PowerShell是一种跨平台的任务自动化和配置管理框架,它提供了许多强大的命令和操作来方便操作系统的管理。在这篇文章中,我们将讨论一些常用的PowerShell指令操作集合,包括: 系统信息查询 磁盘空间管理 网络配置管理 文件和文件夹管理 权限管理 服务和进程管理 系统信息查询 PowerShell提供了一系列…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部