python opencv -模板匹配

python opencv -模板匹配

模板匹配就是,我们现有一个模板和一个图片,然后,在这个图片中寻找和模板近似的部分。

在opencv 中主要通过cv2.matchTemplate这个函数去实现。

下面我们先看一下,模板图片和需要匹配的图片:
模板:
在这里插入图片描述
需要匹配的图片:
在这里插入图片描述
下面来看代码:

import cv2
import copy
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import ospath=r'D:\learn\photo\cv\lena.jpg'
path2=r'D:\learn\photo\cv\face.jpg'img=cv2.imread(path,1)img_gray=cv2.imread(path,0)img_template=cv2.imread(path2,1)img_gray_template=cv2.imread(path2,0)def cv_show(name,img):cv2.imshow(name,img)#cv2.waitKey(0),接收0,表示窗口暂停cv2.waitKey(0)#销毁所有窗口cv2.destroyAllWindows()print(img.shape)
print(img_template.shape)
h, w = img_template.shape[:2]
"""
- TM_SQDIFF:计算平方不同,计算出来的值越小,越相关       
- TM_SQDIFF_NORMED:计算归一化平方不同,计算出来的值越接近0,越相关 
- TM_CCORR:计算相关性,计算出来的值越大,越相关
- TM_CCOEFF:计算相关系数,计算出来的值越大,越相关
- TM_CCORR_NORMED:计算归一化相关性,计算出来的值越接近1,越相关
- TM_CCOEFF_NORMED:计算归一化相关系数,计算出来的值越接近1,越相关
链接:https://docs.opencv.org/3.3.1/df/dfb/group__imgproc__object.html#ga3a7850640f1fe1f58fe91a2d7583695d
"""methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR','cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']res = cv2.matchTemplate(img, img_template, cv2.TM_SQDIFF)
print(res.shape)
# exit()min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
print(min_val, max_val, min_loc, max_loc)for meth in methods:img2 = img.copy()# 匹配方法的真值method = eval(meth)print(method)res = cv2.matchTemplate(img, img_template, method)min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)# 如果是平方差匹配TM_SQDIFF或归一化平方差匹配TM_SQDIFF_NORMED,取最小值if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:top_left = min_locelse:top_left = max_locbottom_right = (top_left[0] + w, top_left[1] + h)# 画矩形cv2.rectangle(img2, top_left, bottom_right, 255, 2)plt.subplot(121), plt.imshow(res,'gray')plt.xticks([]), plt.yticks([])  # 隐藏坐标轴plt.subplot(122), plt.imshow(img2[:,:,::-1])plt.xticks([]), plt.yticks([])plt.suptitle(meth)plt.show()

运行结果如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/215198.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP协议抓包工具Charles 抓包图文完整教程

Charles是在您自己的计算机上运行的Web代理(HTTP代理 / HTTP监视器),您的网络浏览器(或任何其他Internet应用程序)配置为通过Charles访问Internet,Charles可以为您记录并显示发送和接收的所有数据。 Http抓…

Relabel与Metic Relabel

Prometheus支持多种方式的自动发现目标(targets),以下是一些常见的自动发现方式: 静态配置:您可以在Prometheus配置文件中直接列出要监测的目标。这种方式适用于目标相对稳定的情况下,例如固定的服务器或设…

Log4j2.xml不生效:WARN StatusLogger Multiple logging implementations found:

背景 将 -Dlog4j.debug 添加到IDEA的类的启动配置中 运行上图代码,这里log4j2.xml控制的日志级别是info,很明显是没生效。 DEBUG StatusLogger org.slf4j.helpers.Log4jLoggerFactory is not on classpath. Good! DEBUG StatusLogger Using Shutdow…

搜索引擎语法

演示自定的Google hacking语法,解释含意以及在渗透过程中的作用 Google hacking site:限制搜索范围为某一网站,例如:site:baidu.com ,可以搜索baidu.com 的一些子域名。 inurl:限制关键字出现在网址的某…

Echarts 大屏注册自定义地图解析文件流报错问题解决

效果图: 1、首先通过后台接口获取到SVG图片的文件流,postman能够正确解析出文件流,前端调用api时需要设置返回的响应格式为image/svg+xml格式,否则解析失败 拿到文件流后是这样的 <?xml version="1.0" encoding="utf-8"?> <!-- Generator: …

为什么说巴罗洛是意大利葡萄酒中的极品?

在来自南欧国家的众多优秀葡萄酒中&#xff0c;巴罗洛是最好最著名的意大利红酒之一。巴罗洛是一种来自意大利的高品质红酒&#xff0c;巴罗洛红酒是干的&#xff0c;浓郁的&#xff0c;富含单宁和酒精&#xff0c;典型的水果和泥土的味道。巴罗洛产区位于该国北部的皮埃蒙特地…

VBA_MF系列技术资料1-227

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

DCDC电感发热啸叫原因分析

一、电感发热啸叫原因解析 发热原因&#xff1a;电感饱和&#xff0c;实际使用的电感值<理论电感计算值 原因1&#xff1a;电感选择过小&#xff0c;计算值不合理。 原因2&#xff1a;PCB布局不合理&#xff0c;屏蔽型电感下方应设禁止铺铜区。 啸叫原因&#xff1a; 人耳的…

【Vue】图片切换

上一篇&#xff1a; vue的指令 https://blog.csdn.net/m0_67930426/article/details/134599378?spm1001.2014.3001.5502 本篇所需要的指令有&#xff1a; v-on v-bind v-show <!DOCTYPE html> <html lang"en"> <head><meta charset"…

普通人如何有效防范JavaScript自动脚本运行?

大家是否在网上冲浪或者追剧的时候&#xff0c;浏览器莫名其妙跳页&#xff1f;这就是JavaScript自动脚本引起的&#xff01;先说明一下JavaScript给用户带来的危害都有哪些&#xff1f; JavaScript会在浏览器中自动运行脚本&#xff0c;如果不关闭。将会给黑客创造恶意攻击的…

Okhttp 浅析

安全的连接 OkHttpClient: OkHttpClient: 1.线程调度 2.连接池,有则复用,没有就创建 3.interceptor 4.interceptor 5.监听工厂 6.是否失败重试 7.自动修正访问,如果没有权限或认证 8是否重定向 followRedirects 9.协议切换时候是否继续重定向 10.Cookie jar 容器 默认…

路由VRRP配置例子

拓朴如下&#xff1a; 主要配置如下&#xff1a; [R1] interface GigabitEthernet0/0/0ip address 10.1.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.254vrrp vrid 1 priority 200vrrp vrid 1 preempt-mode timer delay 20 # interface GigabitEthernet0/0/1ip address …