多目标匹配

简介: 【6月更文挑战第4天】多目标匹配。

多目标匹配是指输入图像中存在多个可能的匹配结果。在使用cv2. matchTemplate()函数执行了匹配操作后,根据匹配方法设置阈值,匹配结果中低于或者高于阈值的就是符合条件的匹配目标。
示例代码如下。

test7-2.py:多目标匹配

import cv2
import numpy as np
import matplotlib.pyplot as plt
img1=cv2.imread('bee2.jpg') #打开输入图像,默认为BGR格式
temp=cv2.imread('template.jpg') #打开模板图像
img1gray=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY,dstCn=1) #转换为单通道灰度图像
tempgray=cv2.cvtColor(temp,cv2.COLOR_BGR2GRAY,dstCn=1) #转换为单通道灰度图像
th,tw=tempgray.shape #获得模板图像的高度和宽度
img1h,img1w=img1gray.shape
res = cv2.matchTemplate(img1gray,tempgray,cv2.TM_SQDIFF_NORMED) #执行归一化方差匹配操作
mloc=[] #用于保存符合条件的匹配位置
threshold = 0.24 #设置匹配度阈值
for i in range(img1h-th): #查找符合条件的匹配结果位置
for j in range(img1w-tw):
if res[i][j]<=threshold: #保存小于阈值的匹配位置
mloc.append((j,i))
for pt in mloc:
cv2.rectangle(img1,pt,(pt[0]+tw,pt[1]+th),(255,0,0),2) #标注匹配位置,蓝色
cv2.imshow('result',img1) #显示结果
cv2.waitKey(0)

目录
相关文章
|
存储 监控
LabVIEW共享变量
LabVIEW共享变量
216 1
|
算法 计算机视觉
如何判断点在多边形内部:OpenCV--cv2.pointPolygonTest()方法详解
如何判断点在多边形内部:OpenCV--cv2.pointPolygonTest()方法详解
|
算法 数据可视化 数据处理
Opencv与python实现多目标跟踪 (一) - PaddleDetection目标检测
Opencv与python实现多目标跟踪 (一) - PaddleDetection目标检测
871 0
|
存储 小程序 NoSQL
laravel5.8(九)session基本使用
Session这个玩意还是挺重要的。 Laravel对于session的支持还是很完全的。 一:文件位置 Session 配置文件位于 config/session.php。 默认情况下,Laravel 使用的 Session 驱动为 file 驱动,这对许多应用而言是没有什么问题的。 在生产环境中,你可能考虑使用 memcached 或者 redis 驱动以便获取更佳的 Session 性能,尤其是线上同一个应用部署到多台机器的时候,这是最佳实践。 1. 复制代码 Session 驱动用于定义请求的 Session 数据存放在哪里,Laravel 可以处理多种类型的驱动: 1. bash
153 0
|
SQL 关系型数据库
开发指南—DDL语句—分区表语法—CREATE VIEW
本文将介绍如何使用CREATE VIEW语句为PolarDB-X创建视图。
142 0
|
XML 数据格式 网络架构
对象的序列化与反序列化,以xml,二进制流的方式,soap方式序列化对象
  System.Runtime.Serialization.Formatters.Soap 命名空间包含SoapFormatter 类,该类用于以SOAP 格式将对象序列化和反序列化。生成使用此命名空间中的类型的应用程序时,必须引用System.Runtime.Serialization.Formatters.Soap.dll 程序集。   using System;using 
1168 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。