OpenCV-Python模板匹配人眼的实例


Posted in Python onJune 08, 2021

什么是模板匹配

模板匹配是指在当前图像A内寻找与图像B最相似的部分,可以理解找茬,但是这里是找出一样的信息。

一般我们将图像A称为输入图像,将图像B称为模板图像。模板匹配的原理就是将模板B图像在图像A上滑动遍历,找出与其匹配的部分。

模板匹配函数

在OpenCV中,它给我们提供了cv2.matchTemplate()函数来完成模板匹配。其函数的完整定义如下:

def matchTemplate(image, templ, method, result=None, mask=None):

image:原始图像

templ:模板图像

method:匹配方法。该参数通过TemplateMatchModes实现,如下表所示:

 

参数 取值 含义
cv2.TM_SQDIFF 0 以方差为依据进行匹配。若完全匹配,则结果为0;若不匹配,则会得到一个很大的差值
cv2.TM_SQDIFF_NORMED 1 标准(归一化)平方差匹配
cv2.TM_CCORR 2 相关匹配,这类方法将模板图像与输入图像相乘,如果乘积越大,则匹配度较高;如果乘积为0,则表示匹配效果最差
cv2.TM_CCORR_NORMED 3 标准(归一化)相关匹配
cv2.TM_CCOEFF 4 相关系统匹配,这类方法将模板图像与其均值的相对值,和输入图像与其均值的相关值进行匹配。1表示完美匹配,-1表示糟糕的匹配,0表示没有任何相关匹配(随机序列)
cv2.TM_CCOEFF_NORMED 5 标准(归一化)相关系数匹配

result:返回值。它是由每个位置的比较结果组合所构成的一个结果集,类型是单通道32位浮点型。如果输入图像尺寸是WH,模板尺寸是wh,则返回值的大小为(W-w+1)*(H-h+1)。

mask:模板图像掩模。它必须与模板图像具有相同类型的大小。通常使用默认值即可。

实现模板匹配

首先,我们需要两张图片,这里我们还是选取经常用的美女照片以及截取其眼睛部分作为模板图像,如下:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("4.jpg", 0)
template = cv2.imread("4_1.jpg", 0)

th, tw = template.shape[::]

rv = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
min, max, minLoc, maxLoc = cv2.minMaxLoc(rv)

topLeft = minLoc
bottomRight = (topLeft[0] + tw, topLeft[1] + th)
cv2.rectangle(img, topLeft, bottomRight, 255, 2)

plt.subplot(121)
plt.imshow(template, cmap="gray")
plt.axis('off')
plt.subplot(122)
plt.imshow(img, cmap="gray")
plt.axis('off')
plt.show()

运行之后,效果如下:

OpenCV-Python模板匹配人眼的实例

附录:

模板图

OpenCV-Python模板匹配人眼的实例

原图

OpenCV-Python模板匹配人眼的实例

到此这篇关于OpenCV-Python模板匹配人眼的实例的文章就介绍到这了,更多相关OpenCV 模板匹配 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
python非递归全排列实现方法
Apr 10 Python
Python实现求数列和的方法示例
Jan 12 Python
《与孩子一起学编程》python自测题
May 27 Python
Python中的Numpy矩阵操作
Aug 12 Python
Python单元和文档测试实例详解
Apr 11 Python
对python 调用类属性的方法详解
Jul 02 Python
解决Mac下使用python的坑
Aug 13 Python
python实现猜数游戏
Mar 27 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
健身房被搭讪?用python写了个小米计时器助人为乐
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
OpenCV-Python实现轮廓拟合
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
Django drf请求模块源码解析
Python中OpenCV实现查找轮廓的实例
python字符串的多行输出的实例详解
Jun 08 #Python
You might like
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
TypeOf这些知识点你了解吗
2016/02/21 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python collections模块实例讲解
2014/04/07 Python
Python json模块使用实例
2015/04/11 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
植物选择:Botanic Choice
2017/02/15 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
建筑文秘专业个人求职信范文
2013/12/28 职场文书
七年级英语教学反思
2014/01/15 职场文书
学校门卫管理制度
2014/01/30 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
生态养殖创业计划书
2014/05/06 职场文书
护士年终考核评语
2014/12/31 职场文书
求职自我评价范文
2015/03/09 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
JS代码编译器Monaco使用方法
2021/06/11 Javascript