细看都是坑(OpenCV中的matchTemplate方法)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

最近利用OpenCV做2幅图像的比较,用的TM_CCORR_NORMED方法,发现对于图像中,有明确目标的情况下,匹配的结果较好,90+%;对于图像中没有明确目标,如基本黑色的情况下,返回值只有40-50%,或更低。可明明2幅黑色的图像也是类似的嘛,好不?只好再翻一下Learning OpenCV 3关于matchTemplate的说明:
####1. cv::TM_SQDIFF
计算模板与目标图像的方差,由于是像素值差值的平方的和,所以值越小匹配程度越高;
####2. cv::TM_SQDIFF_NORMED
范化的cv::TM_SQDIFF,取值为0-1之间,完美匹配返回值为0;
####3. cv::TM_CCORR
使用dot product计算匹配度(不清楚怎么计算dot product,没看过代码),越高匹配度就好;
####4. cv::TM_CCORR_NORMED
范化的cv::TM_CCORR,0-1之间,我用的这个;
####5. cv::TM_CCOEFF
采用模板与目标图像像素与各自图像的平均值计算dot product,正值越大匹配度越高,负值越大图像的区别越大,但如果图像没有明显的特征(即图像中的像素值与平均值接近)则返回值越接近0;
####6. cv::TM_CCOEFF_NORMED
范化的cv::TM_CCOEFF,-1 ~ 1之间。

从上面的几个方法中,6比较符合目前需求:没有明显的特征,但2幅图像还是非常接近的,so,改为方法cv::TM_CCOEFF_NORMED。

OpenCV3】模板匹配——cv::matchTemplate()详解 模板匹配通常被用于目标检测、相似度分析中,opencv2opencv3中提供了一个专门用于模板匹配函数——cv::matchTemplate() 阅读详情

相关推荐

opencv笔记二十八(模板匹配(matchTemplate,较为低级必须是原图扣出来的一部分,且长宽都能变才行,原理类似于卷积)

直观原理来自: https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html   它是怎么实现的? 我们需要2幅图像: 原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域 模板 (T): 将和原图像比照的图像块 我们的目标...

C++养成记 1万+

OpenCV模板匹配函数matchTemplate的使用详解

通过合适的匹配方法和参数调整,我们可以实现准确的模板匹配,并在图像中标记出匹配的位置。然后,我们使用matchTemplate函数执行模板匹配,并获得匹配结果。接下来,我们找到匹配结果中的最大值和最小值,并获取对应的位置信息。模板匹配是计算机视觉领域中常用的技术之一,用于在图像中寻找与给定模板最相似的区域。OpenCV提供了matchTemplate函数,该函数可以帮助我们实现图像的模板匹配。根据具体的应用场景和需求,可以选择同的匹配方法和调整一些参数,以获得更好的匹配效果。

KdpdCode的博客 760

OpencvmatchTemplate函数详解

前言 本文主要介绍opencv中图像匹配函数 并用示例解释和演示6中匹配方式 函数讲解 opencv实现了一部分通过模板与目标图像进行寻找最佳匹配的方面matchTemplat() , 函数声明如下所示 void cv::matchTemplate( cv::InputArray image, // 用于搜索的输入图像 cv::InputArray teml, // 用于匹配的模板,和image类型相同 cv::OutputArray result, // 匹配结果图像, 类

qq_52852138的博客 8738

opencv-python 详解模板匹配matchTemplate

模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。 通俗来讲就是利用小图来找大图,可以看作是一种简陋的目标检测方法。它只是将模板图像滑动到输入图像上(就像在2D卷积中一样),然后在模板图像下比较模板和输入图像的拼图。举例来说,对于以下两张图片(第一张为原图...

RayChiu757374816的博客 5710

opencv3.3.1 特征匹配时出现的错误及解决办法

在采用surf+knnmatch进行特征匹配的时候,参考了如下这篇博客的代码, https://www.cnblogs.com/skyfsm/p/7401523.html #include "highgui/highgui.hpp" #include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp"...

weixin_43862688的博客 2105

OpenCVMatchTemplate函数参数详解及原理分析

OpenCv给出的MatchTemplate函数,是在一幅图像中寻找与另一幅模板图像最匹配(相似)部分。 一.参数详解 MatchTemplate(InputArray image, InputArray templ, OutputArray result, int method); image:输入一个待匹配的图像,支持8U或者32F。 ...

Nick大帅仔 的博客 4万+

opencvmatchTemplate

C++: void matchTemplate(InputArray image, InputArray templ, OutputArray result, int method) image:

ubunfans的专栏 1万+

OpenCV模板匹配cv2.matchTemplate

添加链接描述 在本教程中,您将学习如何使用OpenCVcv2.matchTemplate 功能。 除了轮廓过滤和处理之外,模板匹配可以说是对象检测的最简单形式之一: 它实现简单,只需要2-3行代码 模板匹配计算效率高 需要执行阈值化,边缘检测等操作即可生成二进制图像(例如轮廓检测和处理) 通过基本扩展,模板匹配可以检测输入图像中相同/相似对象的多个实例(我们将在下周介绍) 当然,模板匹配是完美的。尽管有很多积极因素,但是如果输入图像中存在变化的因素,包括旋转,缩放,视角等变化,模板匹配很快就会失败

此木子 8万+

opencv 模版匹配matchtemplate方法介绍

matchTemplate函数的输入是一个小图像模版和一个被搜索的图像,结果返回一个Mat函数,表示每一个像素位置上的相似度。     matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask = noArray() );   image 为被搜索的图像(

1234的博客 4905

使用OpenCV中的matchTemplate函数实现模板匹配【C++版】

模板匹配例程

Star_ID的博客 5196

008 OpenCV matchTemplate 模板匹配

008 OpenCV matchTemplate 模板匹配

整理ing 2295

OpenCV3学习(8.3)模板匹配函数matchTemplate详解

opencv实现了一部分通过模板与目标图像进行寻找最佳匹配的方面matchTemplat();这个方法网上有很多讲解,基本思想是将模板图像在目标图像上滑动逐一对比,通过统计的基本方法进行匹配,比如方差检验,相关性检验等方法来寻找最佳匹配; void cv::matchTemplate( cv::InputArray image, // 用于搜索的输入图像, 8U 或 32F, ...

知识搬运工的博客 3万+

opencv学习(三十八)之图像模板匹配matchTemplate()

1.概述利用计算机视觉技术对图像进行处理,通常会用到图像的匹配,图像匹配是指图像之间的比较,得到同图像之间的相似度,在机器识别的过程中把同传感器或同一传感器在同时间、同成像条件下对同一景物获得的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找对应的模式。匹配方法大体分为基于灰度和基于特征两类,其中基于特征的配准方法研究较多。 基于灰度的模板匹配方法原理简单且在光照良好的条件下可以

烟雨博客 2万+

OpenCV + matchTemplate 的简单例子

# 导入所需库文件,numpy和cv2。 import cv2 import numpy as np # 加载原始图像和要搜索的图像模板 img = cv2.imread('wife.jpg') # OpenCV对原始图像进行处理,创建一个灰度版本 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 加载将要搜索的图像模板#记录图像模板的尺寸 t...

Murphy的博客 1477

opencv模板匹配matchTemplate

模板匹配的原理 模板匹配可以说是一种最简单的模式识别方法,它的实现主要是通过模板图像在被匹配图像中的平移,在被匹配图像中逐个区域寻找和模板图像相似的区域,如果存在某区域的相似度大于一定的阈值,则表明该区域和模板图像是相匹配的。 但是模板匹配这种方式具有很大的自身局限性: 首先它利用一个规定好的模板进行匹配,这就导致了想要匹配出来的结果必须在大小和角度上和模板图像一模一样,一旦原图像中的匹配目标发生旋转或大小变化,就会导致匹配准确率急剧下降。 而且模板图像在原图像中进行移动的时候,只能够平行地上、下、左

DayDayUp 1847

基于VS与OpenCV的模板匹配学习(1):OpenCV matchTemplate()示例

基于VS与OpenCV的模板匹配学习(1) OpenCV matchTemplate()示例

分享学习经验,欢迎交流! 5617

Opencv3.4.4 利用matchTemplate方法实现多目标匹配

matchTemplate实现单目标匹配方法很多在此赘述,本文主要提供多目标匹配方法。 首先matchTemplate( InputArray image, InputArray templ,OutputArray result, int method, InputArray mask = noArray() );三个参数Result,反应的是样本与待测目标的...

qq_34902877的博客 8444

OpenCV-Python教程:模板匹配(matchTemplate)

模板匹配可以实现在源图像中查找特征图像,特征图像一般是一个矩形图像。在前面的文章中桔子菌也介绍到过一些关于“匹配”功能的方法,比如形态学变换中的击中击中,它的要求非常高,如果像素值存在任何细小差别就会导致击中,也就是匹配,另外比如直方图反映射,可以用来匹配某种颜色的区域。

桔子code 的博客 1万+
上一篇: 高斯(Gaussian)滤波、中值(Median)滤波与双边(Bilateral)滤波的特点
下一篇: Statistical Correlation理解
coroutines
博客等级 码龄14年 9236粉丝 116原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值