OpenCV-模板匹配cv::matchTemplate

article/2025/11/9 19:15:40

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 

函数原型

void matchTemplate( InputArray image, InputArray templ,OutputArray result, int method, InputArray mask = noArray());

参数说明

  1. InputArray类型的image,输入图像。
  2. InputArray类型的templ,待匹配图像。
  3. OutputArray类型的result,输出匹配结果。
  4. int类型的method,匹配方法,具体介绍见下方。
  5. InputArray类型的mask,掩膜。

匹配方法介绍

       模板匹配函数中自带了6种匹配方法,其原理是以原图某点为起始点,选择模板同大小的区域进行计算,根据得到的结果选择最优的解,所以当你使用该函数时会发现,假如原图1000*1000,模板100*100,那结果图尺寸为900*900,各方法对应的公式和原理如下所示。

       1.CV_TM_SQDIFF,平方差匹配法。得到的数值越小,说明越匹配。

R(x, y)=\sum(I(x+m, y+n)-T(m, n))^{2}

       2.CV_TM_SQDIFF_NORMED,归一化平方差匹配法。得到的数值越小,说明越匹配。

R(x, y)=\frac{\sum(I(x+m, y+n)-T(m, n))^{2}}{\sqrt{\sum T(m, n)^{2} \sum I(x+m, y+n)^{2}}}

       3.CV_TM_CCORR,相关匹配法。得到的数值越大,说明越匹配。该方法容易受背景干扰。

R(x, y)=\sum(I(x+m, y+n) \cdot T(m, n))

       4.CV_TM_CCORR_NORMED,归一化相关匹配法。得到的数值越大,说明越匹配。该方法容易受背景干扰。

R(x, y)=\frac{\sum(I(x+m, y+n) \cdot T(m, n))}{\sqrt{\sum T(m, n)^{2} \sum I(x+m, y+n)^{2}}}

       5.CV_TM_CCOEFF,相关系数法,也是零均值互相关法,将均值减去后,再计算相关性。得到的数值越大,说明越匹配。该方法应用性较优。

R(x, y)=\sum((I(x+m, y+n)-\bar{I}) \cdot(T(m, n)-\bar{T}))

       6.CV_TM_CCOEFF_NORMED,归一化相关系数法。得到的数值越大,说明越匹配。该方法应用性较优。

R(x, y)=\frac{\sum((I(x+m, y+n)-\bar{I}) \cdot(T(m, n)-\bar{T}))}{\sqrt{\sum(T(m, n)-T)^{2} \sum(I(x+m, y+n)-I)^{2}}}

测试代码

#include <iostream>  
#include <opencv2\opencv.hpp>
#include <opencv2/highgui/highgui.hpp> using namespace cv;
using namespace std;int main()
{cv::Mat src = imread("test1.jpg");cv::Mat sample = imread("t.png");// 匹配cv::Mat result;matchTemplate(src, sample, result, CV_TM_CCOEFF);// 归一化normalize(result, result, 0, 1, NORM_MINMAX, -1, Mat());// 获取最小值double minValue; double maxValue; Point minLocation; Point maxLocation;Point matchLocation;minMaxLoc(result, &minValue, &maxValue, &minLocation, &maxLocation, Mat());matchLocation = maxLocation;// 框选结果cv::Mat draw = src.clone();rectangle(draw, matchLocation, Point(matchLocation.x + sample.cols, matchLocation.y + sample.rows), Scalar(255, 0, 0), 2, 8, 0);imshow("src", src);imshow("sample", sample);imshow("draw", draw);waitKey(0);return 0;
}

测试效果

图1 原图
图2 待检测目标
图3 检测结果

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!


http://chatgpt.dhexx.cn/article/idfTeMo3.shtml

相关文章

OPENCV多种模板匹配使用对比

前文简单提到模板匹配中的一种&#xff1a;NCC多角度模板匹配&#xff0c;博主结合实际的检测项目&#xff08;已落地&#xff09;发现其准确率和稳定性有待提升&#xff0c;特别是一些复杂背景的图形&#xff0c;又或是模板选取不当都会造成不理想的效果&#xff1b;同时也借鉴…

基于opencv的模板匹配详解

1.什么是模板匹配 在OpenCV教程中这样解释模板匹配&#xff1a; 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术。这里说的模板是我们已知的小图像&#xff0c;模板匹配就是在一副大图像中搜寻目标。模板就是我们已知的在图中要找的目标&#xff0c;…

OpenCV模板匹配(cv2.matchTemplate)

目录 摘要正文OpenCV模板匹配&#xff08;cv2.matchTemplate&#xff09;什么是模板匹配&#xff1f;OpenCV的 “cv2.matchTemplate” 函数配置开发环境项目结构使用OpenCV实施模板匹配OpenCV模板匹配结果总结 摘要 在本教程中&#xff0c;您将学习如何使用OpenCV和cv2.matchTe…

Opencv (C++)系列学习---模板匹配

目录 1.模板匹配的定义 2.API介绍 3.寻找最优匹配位置&#xff08;匹配后的配套操作&#xff09; 4.具体代码 1.模板匹配的定义 模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域&#xff0c;该匹配方法并不是基于直方图&#xff0c;而是使用一个图像块在输入图像…

【OpenCV--模板匹配】

目录 一、模板匹配 1.定义&#xff1a; 2.实现&#xff1a; 二、霍夫线检测 1.原理&#xff1a; 2.实现&#xff1a; 三、霍夫圆检测 1.描述&#xff1a; 2.用法&#xff1a; 一、模板匹配 1.定义&#xff1a; 模板匹配就是在给定的图片中&#xff0c;查找和模板最相似的区域…

OpenCV学习笔记(十一)——模板匹配

模板匹配是指在当前图像A内寻找与图像B最相似的部分&#xff0c;一般将图像A称为输入图像&#xff0c;将图像B称为模板图像。模板匹配的操作方法是将模板图像B在图像A上滑动&#xff0c;遍历所有像素以完成匹配。 OpenCV学习笔记(十一&#xff09; 1. 模板匹配基础2. 多模板匹配…

opencv中的模板匹配

1 匹配函数 opencv 提供了一个专门用于模板匹配的函数 cv::matchTemplate();其调用方式如下&#xff1a; void cv::matchTemplate(cv::InputArray image, // 用于搜索的输入图像, 8U 或 32F, 大小 W-Hcv::InputArray templ, // 用于匹配的模板&#xff0c;和image类型相同&am…

【论文译文】BigGAN

译文仅供参考&#xff01; 原文是pdf&#xff0c;想下载的话可以戳&#xff1a;http://www.gwylab.com/pdf/biggan_chs.pdf

WGAN、WGAN-GP、BigGAN

一、WGAN概述 WGAN论文地址&#xff1a;https://arxiv.org/abs/1701.07875 在这篇论文中&#xff0c;作者研究了不同的测量方法&#xff0c;来描述模型生成样本和证实样本之间分布差距&#xff0c;或者说&#xff0c;不同的散度定义&#xff0c;在对比之后&#xff0c;认为EM…

tf hub bigGan 猫变狗

原文链接: tf hub bigGan 猫变狗 上一篇: tf hub mobile_net 使用 下一篇: tf hub 使用缓存 数据 根据输入的标签和噪声生成指定类别的图片&#xff0c;类似infogan 每次向着目标前进一小步&#xff0c;将其中的过程变化记录下来 import tensorflow as tf import n…

(2018, BigGAN)用于高保真自然图像合成的大规模 GAN 训练

Large scale gan training for high fidelity natural image synthesis 公众号&#xff1a;EDPJ 目录 0. 摘要 1. 简介 2. 背景 3. 扩展 GAN 3.1 使用截断技巧权衡多样性和保真度 3.2 总结 4. 分析 4.1 表征不稳定性&#xff1a;生成器 4.2 表征不稳定性&#xff1…

深度解读DeepMind新作:史上最强GAN图像生成器—BigGAN

在碎片化阅读充斥眼球的时代&#xff0c;越来越少的人会去关注每篇论文背后的探索和思考。 在这个栏目里&#xff0c;你会快速 get 每篇精选论文的亮点和痛点&#xff0c;时刻紧跟 AI 前沿成果。 点击本文底部的「阅读原文」即刻加入社区&#xff0c;查看更多最新论文推荐。 这…

基于飞桨实现BigGAN生成动漫图像——为艺术创作赋能

点击左上方蓝字关注我们 【飞桨开发者说】艾梦&#xff0c;深度学习业余选手&#xff0c;热衷于用AI创造新的可能性&#xff0c;努力探索发现未知的神奇世界。玩AI&#xff0c;我是认真的。 作为学力不足、码力有余的深度学习业余玩家&#xff0c;笔者在工作中忙里偷闲&#xf…

GAN变种介绍 - DCGAN、InfoGAN、CycleGAN、WGAN、Self-Attention GAN、BigGAN

GAN变种介绍 - DCGAN、InfoGAN、CycleGAN、WGAN、Self-Attention GAN、BigGAN 一、DCGAN二、InfoGAN三、CycleGAN四、WGAN五、Self-Attention GAN六、BigGAN 在原始的 GAN 论文中&#xff0c;Ian Goodfellow 从理论层面分析了 GAN 网络的收敛性&#xff0c;并且在多个经典图片数…

基于飞桨PaddlePaddle实现BigGAN生成动漫图像——为艺术创作赋能

作为学力不足、码力有余的深度学习业余玩家&#xff0c;笔者在工作中忙里偷闲&#xff0c;借助AI Studio的免费GPU继续自己对于生成对抗网络落地应用的相关研究。尽管深度学习已在工业生成中广泛应用&#xff0c;但作为研究重头的视觉效果极佳的GAN的图像生成&#xff0c;却在应…

深度学习(四十六)——StarGAN, InfoGAN, ProGAN, StyleGAN, BigGAN, FUNIT, CVAE

StarGAN 论文&#xff1a; 《StarGAN: Unified Generative Adversarial Networksfor Multi-Domain Image-to-Image Translation》 CycleGAN的局限在于&#xff1a;对于两个Domain之间的变换&#xff0c;需要两个G网络。可以想象&#xff0c;当Domain的数量上升时&#xff0c;…

biggan:large scale gan training for high fidelity natural image synthesis

深度解读DeepMind新作&#xff1a;史上最强GAN图像生成器—BigGAN - 知乎本期推荐的论文笔记来自 PaperWeekly 社区用户 TwistedW。由 DeepMind 带来的 BigGAN 可谓是笔者见过最好的 GAN 模型了&#xff0c;这里的 Big 不单单是指模型参数和 Batch 的大&#xff0c;似乎还在暗示…

飞桨PaddlePaddle(论文复现)-BigGAN解读

飞桨PaddlePaddle(论文复现)-BigGAN解读 先来看看效果&#xff08;左上脚为生成的图像&#xff09; 论文在现有GAN的基础上对生成样本的保真度与多样性之间的权衡进行改进 在ImageNet的128*128分辨率下训练&#xff0c;我们的模型&#xff08;BigGANs&#xff09;得到了166…

深度学习系列43:引入注意力的SAGAN/BigGAN和big_sleep

1. 从SAGAN到BigGAN sa_gan是Self-Attention Generative Adversarial Networks的缩写。 动机&#xff1a;一般的dc_gan(deep convolution)模型擅长处理含有大量纹理的类型&#xff0c;比如天空、风景等&#xff0c;但在结构上的表现比较差&#xff0c;比如不能正确生成人脸、四…

【Large Scale Adversarial Representation Learning 大规模对抗学习(BigGAN) 】学习笔记

目录 1.背景 2.特点 3.BigGAN详细介绍 ①Batch size的增大------以提升IS ②增加网络深度&#xff0c;即增加每层的通道数------以提升IS ③BatchNorm共享嵌入条件标签c------增加参数&#xff0c;提升训练速度 ④将噪声向量 z 送到 G 的多个层而不仅仅是初始层-----提升…