《OpenCV3编程入门》学习笔记9 直方图与匹配(五)模板匹配

9.5 模板匹配

基本思想:
  在一幅图像中寻找与另一幅模板图像最匹配的部分,通过在输入图像上滑动图像块,对实际的图像块和输入图像进行匹配。

9.5.1 模板匹配:matchTemplate()函数

1.作用:
  匹配出和模板重叠的图像区域
2.函数原型:

void matchTemplate(InputArray image, InputArray templ, OuputArray result, int method)

3.参数说明:
(1)带搜索图像,8位或32位浮点型
(2)搜索模板,与原图像数据类型相同,尺寸不大于原图像
(3)比较结果的映射图像,单通道32位浮点型图像,如果图像尺寸为W*H,而templ尺寸为w*h,则参数一定为(W-w+1)*(H-h+1).
(4)指定的匹配方法,6种方法越来越准确,计算量越来越大:
  1)平方差匹配法 method=TM_SQDIFF
    匹配越差,匹配值越大,最好匹配为0
                在这里插入图片描述
  2)归一化平方差匹配法 method=TM_SQDIFF_NORMED
              在这里插入图片描述
  3)相关匹配法 method=TM_CCORR
    采用模板和图像间的乘法操作,较大的数表示匹配程度较高,最坏匹配为0
                在这里插入图片描述
  4)归一化相关匹配法 method=TM_CCORR_NORMED
             在这里插入图片描述
  5)系数匹配法 method=TM_CCOEFF
    将模板对其均值的相对值与图像对其均值的相关值进行匹配,1表示完美匹配,-1表示糟糕匹配,0表示无相关性(随机序列)
                在这里插入图片描述
    其中:
               在这里插入图片描述
           在这里插入图片描述

  6)归一化相关系数匹配法 method=TM_CCOEFF_NORMED
              在这里插入图片描述

9.5.2 综合示例

/*
    程序说明:模板匹配,滑动条选择匹配方法
*/
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
//定义辅助宏
#define WINDOW_NAME1 "【原始图窗口】"
#define WINDOW_NAME2 "【效果图窗口】"
//全局变量
Mat g_srcImage, g_templateImage, g_dstImage;
int g_nMatchmethod;
int g_nMaxTrackbarNum = 5;
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值