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 流程控制实例代码
Sep 25 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
Python上下文管理器和with块详解
Sep 09 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
Python实现的生成格雷码功能示例
Jan 24 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
python matplotlib折线图样式实现过程
Nov 04 Python
8种常用的Python工具
Aug 05 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 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函数代码
2010/04/22 PHP
PHP自定义错误用法示例
2016/09/28 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
JavaScript 数组运用实现代码
2010/04/13 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
wxPython窗口中文乱码解决方法
2014/10/11 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python编码类型转换方法详解
2016/07/01 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
思想汇报格式
2014/01/05 职场文书
教师演讲稿范文
2014/01/08 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
表演方阵解说词
2014/02/08 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
教堂婚礼主持词
2014/03/14 职场文书
教师党员承诺书
2014/03/25 职场文书
工作作风承诺书
2014/08/30 职场文书
查摆剖析材料范文
2014/09/30 职场文书
2015年防汛工作总结
2015/05/15 职场文书
孔繁森观后感
2015/06/10 职场文书
呐喊读书笔记
2015/06/30 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers