首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 机器视觉 - 基于opencv图像模板匹配实现的简单人脸匹配实例演示,matchTemplate的6大模板匹配算法

第一章:图像模板匹配演示 ① 效果展示1 这是我要进行匹配的图片: 匹配后的效果: ② 效果展示2 这是我要进行匹配的图片: 匹配后的效果: ③ 实现源码 实现源码如下...【参数1】 模板图片 【参数2】 进行匹配的图片 【参数3】 算法模型 【返回】 无 '''...# 进行模板匹配 result = cv.matchTemplate(img, img_match, arithmetic_model) # 获取最小最大匹配值,还有对应的坐标...在一些复杂的场景下,从简单的平方差算法到更复杂的相关系数算法,匹配的准确率会不断提高,但是计算量也同时增加了。...公式如下: ③ CV_TM_CCORR【相关匹配】 相关匹配:CV_TM_CCORR 利用模板和图像间的乘法操作。 特点: 系数越高匹配效果越好,最小值 0。

1.3K10

OpenCV中使用模板匹配识别空闲的货架空间

相似度是基于我们可配置的阈值。OpenCV的模板matchTemplate函数可以实现该操作。 ?...模板匹配 有一些方法可以通过计算机视觉来实现这一点,有些比其他的更好,然而,在这篇文章中,我们将尝试OpenCV中的模板匹配。 模板匹配是一种在较大的图像中搜索和查找模板图像位置的方法。...OpenCV附带了一个函数cv.matchTemplate()为这个目的。它简单地将模板图像滑动到输入图像上(就像在2D卷积中一样),并在模板图像下比较输入图像的模板和补丁。...匹配过程 现在我们有了模板,我们可以开始匹配过程了。为此,我们首先将模板存储为一个具有不同属性的类,例如标签(1,2)和颜色(以区分为不同模板绘制的矩形框)。...模板匹配的缺点 有人可能会说,实际上应该有5个矩形显示在最上面的架子上,因为其中一个袋子似乎是轻微倾斜/移动。如果使用模板匹配,就很难找到这种方法。

77230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    实战 | OpenCV带掩码(mask)的模板匹配使用技巧与演示(附源码)

    导读 本文将重点介绍 OpenCV带掩码(mask)的模板匹配使用技巧与演示。...(来源公众号:OpenCV与AI深度学习) 背景介绍 在使用模板匹配时,一些特定情况中我们并不需要将整个模板图像拿来匹配,而只需要其中特定的部分做模板,其他部分则加入反而会影响匹配结果。...如下图所示: 原本左边的模板图除了我们想要的部分外,还有外部的白色背景区域,如果将整张图作为模板,来做模板匹配,匹配结果会出错,结果如下: 加上掩码后匹配,结果如下: 详细步骤 在核心方法还是使用...OpenCV的matchTemplate函数,只是这次我们要指定mask(掩码),匹配时对于掩码中的非0像素匹配算法起作用,掩码中的灰度值为0像素位置,匹配算法不起作用。...这里获取掩码的方法不唯一,可以通过预先加载获得,可以通过二值化,图像分割等手段获得,最终的掩码图像需要与模板图像大小一致,同时为单通道图像,mask的非0像素对应的位置就是我们关心的匹配内容,灰度值为的

    6.6K21

    OpenCV实现基于边缘的模板匹配--适用部分遮挡和光照变化情形(附源码)

    ---- 介绍 模板匹配是一个图像处理问题,当其姿态(X,Y,θ)未知时,使用另一张搜索图像中的模板图像找到对象的位置。...此外,该算法的计算成本很高,因为它需要计算模板图像中所有像素与搜索图像之间的相关性。 基于特征的方法:在图像处理领域中使用了几种基于特征的模板匹配方法。...X 和 Y 导数与坐标信息一起保存为模板模型。...这些坐标将重新排列以反映作为重心的起点。 找到基于边的模板模型 算法中的下一个任务是使用模板模型在搜索图像中找到对象。...OpenCV2版本,安装包可以在下面交流群获取; 代码适用部分遮挡和亮度变化情况的匹配; 算法测试时间较长,还需优化,可用作学习。

    2.8K10

    中文点选验证码之自动识别

    某次测试中遇到了汉字点选的验证码,看着很简单,尝试了一下发现有两种简单的识别方法,终于有空给重新整理一下,分享出来。 0x01 验证码的获取 首先获取验证码。...一种是opencv的图像模板匹配,另外一种是OCR识别。 1. opencv的图像模板匹配 第一种方式,使用opencv的图像模板匹配。...模板匹配是一种在较大图像中搜索和查找模板图像位置的方法,opencv2和opencv3中提供了一个专门用于模板匹配的函数matchTemplate()。...获取模板的尺寸,然后在 mp 中用矩形(红色区域)画出匹配的区域。如下所示。 ? 同理,用黄色和蓝色矩形将“户”、“室”所在的区域画出来。 ? 点选时发送所选区域中间的坐标即可,这里就不再给出实例了。...0X03 总结 本文用了两种方法来自动识别汉字点选验证码,第一种采用的是opencv的模板匹配,这种方法虽然也可以匹配到,但这种方法缺点就是对于字体形状差异较大的验证码识别率较低。

    5K40

    实例应用(二):使用Python和OpenCV进行多尺度模板匹配

    鉴于“使命召唤”模板的尺寸与游戏封面上的“使命召唤”标识的尺寸不符,我们将留下错误的检测结果。 所以我们现在怎么办? 放弃?开始检测关键点?提取局部不变描述符?并应用关键点匹配?...匹配模板 并跟踪最大相关系数的匹配(以及具有最大相关系数的区域的 x,y坐标)。 遍历所有尺度后,取相关系数最大的区域作为“匹配”区域。...如果模板较大,那么我们的cv2 。matchTemplate 调用会抛出一个错误,所以如果是这样的话,我们只是从循环中断开。...然后我们应用模板匹配,找到 相关系数最大的图像(x,y)坐标。 最后,我们将这些值存储在簿记变量中。...为了完整起见,下面是使用OpenCV和Python可视化我们的多尺度模板匹配的另一个例子: ? 图10:可视化多尺度模板匹配的第二个例子。

    6.4K31

    【OpenCV】入门教学了解图像处理的基本原理

    如果你并没有学习过python,可以去看我的python专栏:python 本文的内容:图片的读取,RGB彩色通道,区域裁剪,绘制图像1和文字,均值滤波,特征提取,模板匹配,梯度算法,阈值算法,形态学操作...函数返回一个包含检测到的角点的数组,每个角点由其坐标(x, y)表示。 9. 模板匹配 模板匹配我们会用到扑克那张图片,来匹配扑克中的菱形。...0.9的匹配点 w, h = template.shape[0:2] #求出模板的长和宽,方便后续标记图片。...(gray)中滑动模板(template) 并计算每个位置与模板的匹配程度,返回一个匹配程度的矩阵 cv2.TM_CCOEFF_NORMED是一种匹配方法,它通过归一化相关系数来衡量匹配程度 np.where...,由 cv2.matchTemplate 函数返回,表示输入图像中每个位置与模板的匹配程度。

    13110

    OpenCV图像识别在自动化测试中实践

    解决的方法是将开源计算机视觉库OpenCV引入Appium框架,将按钮或控件的截图作为参数输入,在屏幕中通过图像特征识别获取对应控件坐标,调用AppiumAPI实现坐标点击,然后再次调用OpenCV图像识别库...匹配阈值 为了排除因为图像遮挡和背景混乱而产生的无匹配关系的关键点,SIFT的作者Lowe提出了比较最近邻距离与次近邻距离的SIFT匹配方式:取一幅图像中的一个SIFT关键点,并找出其与另一幅图像中欧式距离最近的前两个关键点...因为对于错误匹配,由于特征空间的高维性,相似的距离可能有大量其他的错误匹配,从而它的ratio值比较高。显然降低这个比例阈值T,SIFT匹配点数目会减少,但更加稳定,反之亦然。...Lowe推荐ratio的阈值为0.8,但作者对大量任意存在尺度、旋转和亮度变化的两幅图片进行匹配,结果表明ratio取值在0. 4~0. 6 之间最佳,小于0. 4的很少有匹配点,大于0. 6的则存在大量错误匹配点...,同时可以计算匹配的中心点坐标。

    3.6K31

    【从零学习OpenCV 4】图像矩的计算与应用

    2D像素坐标集合或者单通道的CV_8U图像 binaryImage:是否将所有非0像素值视为1的标志。...该函数用于计算图像连通域的几何矩和中心距以及归一化的几何矩。函数第一个参数是待计算矩的输入图像或者2D坐标集合。...OpenCV 4提供了利用Hu矩进行轮廓匹配的matchShapes()函数,该函数的函数原型在代码清单7-32中给出。...parameter:特定于方法的参数(现在不支持) 该函数用于实现在图像或者轮廓中寻找与模板图像或者轮廓像素匹配的区域。函数的第一个参数是原灰度图像或者轮廓,第二个参数是模板图像或者轮廓。...,在代码清单7-33中给出了利用Hu矩实现模板与原图像或者轮廓之间匹配的示例程序。

    1.7K30

    【从零学习OpenCV 4】图像模板匹配

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...OpenCV 4中提供了用于图像模板匹配的函数matchTemplate(),该函数能够实现模板匹配过程中图像与模板相似性的计算,在代码清单4-12中给出了函数原型。...为了了解图像模板匹配相关函数的使用方法,在代码清单4-13中给出了在彩色图像中进行模板匹配的示例程序。...程序中采用TM_CCOEFF_NORMED方法计算相关性系数,通过minMaxLoc()函数寻找相关性系数中的最大值,确定最佳匹配值的像素点坐标,之后在原图中绘制出与模板最佳匹配区域的范围,程序的运行结果在图...代码清单4-13 myMatchTemplate.cpp图像的模板匹配 1. #include opencv2\opencv.hpp> 2.

    1.2K10

    Python之利用opecv图像识别 (模板匹配)

    这是一个相对好玩的,你可以利用图像识别做很多事情,但是这种模板匹配的方法是相对比较笨的方法,对于我正在学习的神经网络所实现的图像识别来说,模板匹配的健壮性不是很好,不过还是有很多事情可以用模板匹配做到的...模板匹配的意思是,拿两张图片,或者是一张大图一张小图,在大图中判断有没有类似小图的像素,如果有则匹配的上,反则没有匹配,大致就像,有一张模板图片,然后一张测试图片,拿着模板图片在测试图片中找相同的地方。...opencv作为模板匹配的方法有很多种: CV_TM_SQDIEF平方差匹配法,最好匹配为0,值越大匹配越差 CV_TM_SQDIEF_NORMED归一化平方差匹配法 CV_TM_CCORR相关匹配法,...,从而判断截图中的游戏界面里有没有怪物存在,其中利用了两种方法的匹配,然后比较其结果有没有一样,如果一样则输出坐标(这个坐标是左上角的坐标,再具体操作的话需要减去模型的x或y,便可以得到想要的坐标) 不同的方法的坐标放在不一样的值里...其中opencv模板匹配函数matchTemplate() drawpos = cv2.matchTemplate(img_d1, imgdraw, cv2.TM_CCOEFF_NORMED) 其中,img_d1

    1.7K30

    游戏中的图像识别:CV的新战场

    原始的FAST也不具有方向不变性,ORB的论文中提出了一种利用灰度质心法来解决这个问题。对于任意一个特征点p来说,定义p的邻域像素的矩为 ?...ORB在计算BRIEF描述子的时候,建立的坐标系是以关键点为圆心,以特征点P和取点区域的质心(Q)的连线为X轴建立的二维坐标系。...由下图所示,可知ratio为0.75左右时,可以把正确匹配和错误匹配情况的最好的分离。 ?...图 7 最近邻距离和第二近邻距离的ratio图,实线为匹配正确时的ratio的pdf,虚线为错误匹配时的ratio的pdf。图像来自论文:D. G. Lowe....openCV中提供了接口函数cv2.matchTemplate(src, tmpl, method) 进行模板匹配,其中method表示匹配方法的选择。

    2.8K30

    Airtest图像识别

    这个函数执行点击操作的是 G.DEVICE.touch(pos, **kwargs),而pos就是图片匹配返回的坐标位置,重点看loop_find这个函数是怎样识别并返回坐标数据的: ?...解读下 match_in方法: 1、调用自己的_cv_math方法,找到匹配到的坐标结果; 2、根据图片坐标返回点击坐标,默认点击图片中心位置。 接下来看 self....概括来说aircv.find_template 主要做了这几件事情: 1、校验图像输入; 2、计算模板匹配的结果矩阵res; 3、依次获取匹配结果; 4、求取可信度; 5、求取识别位置。...这里可以看到,Airtest也没有自研一套很牛的图像识别算法,直接用的OpenCV的模板匹配方法。 四、接着看另外一个方法 aircv.find_sift 定义在sift.py里面: ? ?...()  五、最终用到的就是OpenCV的两个方法:模版匹配和特征匹配 1.模板匹配:  cv2.matchTemplate(i_gray, s_gray, cv2.TM_CCOEFF_NORMED) 2

    12.4K21

    深度学习实战篇之 ( 三) -- 初识人脸检测

    ,增加大家的学习兴趣,因此,今天的文章,小编找了一个非常简单且实际的应用例程给大家展示,人脸检测作为各种人脸任务的基础,它的存在尤为重要,由于人工智能的普及,当前的人脸检测方法已经被深度学习占领了,当然...3.就要模板的匹配,实现给定人脸的模板,之后在真实的场景中,分别计算人脸模板中存在属性的相关性,例如鼻子,眼睛,嘴唇等等,当相关性在一定阈值范围内,即可认为与模板匹配,进而得出人脸区域是否存在。...,更快的增加视觉体验,我们仅仅分享步骤四中的内容,而真正目标检测的内容,我们将会在理论篇给大家进行分享。...由于只分享第四部分的内容,因此,需要明确以下问题: 1.所用预测模型是之前的模型已经训练好的,不需要重新训练,拿来即可用 2.得到预测模型的输出结果(也就是每个人脸的坐标位置),使用opencv等视觉库在实际的人脸图像中绘制出人脸位置...2.根据模型得出的坐标,采用OpenCV的cv2.rectangle()函数进行人脸区域画框。

    44010

    【OpenCV入门之七】详细剖析模板匹配

    模板匹配介绍 我们需要2幅图像: 原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域 模板 (T): 将和原图像比照的图像块 ?...所以模板匹配首先需要一个模板图像T(给定的子图像) 另外需要一个待检测的图像-源图像S 工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。...模板匹配原理 我们的目标是检测最匹配模板的原图像的区域: ? 为了确定匹配模板区域, 我们不得不滑动模板图像和原图像进行比较 : ?...minLoc:在结果矩阵中最小值的坐标,可输入NULL表示不需要,Point类型。 maxLoc:在结果矩阵中最大值的坐标,可输入NULL表示不需要,Point类型。...mask:可选的掩模 模板匹配介绍 – 匹配算法介绍: OpenCV中提供了六种常见的匹配算法如下: 计算平方不同 : 计算出来的值越小,越相关 TM_SQDIFF = 0 ?

    1K20

    计算机视觉 OpenCV Android | 基本特征检测 之 模板匹配

    ---- 模板匹配知识 与 demo代码 OpenCV中支持的基于像素计算的模板匹配方法包括如下6种,具体如下表: ?...如果计算模板匹配时使用的模板匹配方法是平方不同或者归一化平方不同, 则值越小表示子区域与模板匹配度越高, 其他四个方法则是值越高表示图像子区域与模板匹配度越高, 使用模板匹配的时候, 首先要根据模板图像与输入图像计算得到输入图像的每个像素点与模板的匹配程度值...对象 是一个矩形(其实就是模板图像)的左上角的坐标; 按照这个思路以及下面的示意图,我们便可以知晓result处参数大小定义为(W-w+1)×(H-h+1)的意义: ?...《准备的材料 以及 运行结果示图》部分; // 模板匹配代码模块的思路:(从API输出对象Mat result到表示模板图像的左上角的坐标的Point对象其简单的转换过程) ?...---- 参考材料 《OpenCV Android 开发实战》(贾志刚 著) 关于《OpenCV Android 开发实战》作者的GitHub项目 笔者基于作者GitHub维护的APP

    1.3K20

    【图像配准】使用OpenCV进行多图配准拼接

    本篇主要利用OpenCV自带的配准拼接函数Stitcher_create来实现多幅图像的配准拼接 代码参考自:https://github.com/samggggflynn/image-stitching-opencv...,对两张图像进行匹配,得到若干匹配点对,并移除错误匹配; 使用Ransac算法和匹配的特征来估计单应矩阵(homography matrix); 通过单应矩阵来对图像进行仿射变换; 两图像拼接,重叠部分融合...OpenCV实践 OpenCV提供了cv2.createStitcher (OpenCV 3.x) 和 cv2.Stitcher_create(OpenCV 4) 这个拼接函数接口,对于其背后的算法,尚未可知...ERR_NEED_MORE_IMGS=1 :这表明构建全景图像需要输入更多的输入图像。没有检测到足够关键点时,会发生该错误。...原仓库给出了三张测试小图如下: 不进行裁剪之后的结果: 裁剪后的结果为下图红框所示部分: 参考 [1]https://github.com/samggggflynn/image-stitching-opencv

    4K21

    AI Talk | AI工业质检之以图搜图引擎

    ,核心思路:搜索图片与目标图片通过黄金模板矫正得到中心偏移坐标,根据偏移坐标计算人工框选的关键区域坐标,使关键区域换算后的坐标在相应图像上的相对位置尽量相同,以便达到关键区域高效比对。...模板匹配顾名思义就是给定一幅影像(模板)然后在另一幅 图像中寻找这个模板的操作。它是一种用来在一幅大图中 寻找模板图像位置的方法。...返回 的结果是一个灰度图像,每一个像素值表示了此区域与模板 的匹配程度。 匹配步骤 1.输入原图像(I)和模板图像(T)。在原图像中我们希望找到一块和模板匹配的区域。...2.通过将模板在原图像上滑动来寻找最匹配的区域。这里所谓的滑动是指模板图像块一次移动一个像素(从左往右,从上往下)。...以该点为顶点,长宽和模板大小图像一样的矩阵认为是匹配区域。在OpenCV中可以用cv2.minMaxLoc()函数获得最值坐标。

    1.6K31
    领券