图像模板匹配算法 c++

模板匹配,顾名思义,即在一副图像中寻找和另一幅图像最相似(匹配)的部分。前段时间做实验
用到了模板匹配算法,之前作的笔记先放到博客上.

1、用到的函数和参数解释

1.1 Rect()函数

Mat Image = imread(“0.png”)
Mat templateimage = Image(Rect(x, y, n,m));

即我们先定位到坐标为(x,y)这个像素点,然后以这个点为起点,往右下划出一个n列m行的区域
参考博客:https://blog.csdn.net/weixin_30954607/article/details/95317294

1.2 nameWindow()函数

 namedWindow( image_window, CV_WINDOW_AUTOSIZE ); // 窗口名称,窗口标识  CV_WINDOW_AUTOSIZE是自动调整窗口大小以适应图片尺寸
 namedWindow( result_window, CV_WINDOW_AUTOSIZE );

创建窗口。第一个参数是窗口名称,第二个窗口是int类型的Flag可以填写以下的值:

WINDOW_NORMAL   //设置了这个值,用户便可以改变窗口的大小(没有限制)
WINDOW_AUTOSIZE   //如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小

1.3 createTrackba()函数

createTrackbar(const string& trackbarname, const string& winname,
                              int* value, int count,
                              TrackbarCallback onChange = 0,
                              void* userdata = 0);

参数1. trackbarname:滑动空间的名称;
参数2. winname:滑动空间用于依附的图像窗口的名称;
参数3. value:初始化阈值;
参数4. count:滑动控件的刻度范围;
参数5. TrackbarCallback是回调函数.

1.4 matchTemplate()函数

matchTemplate( img, templ, result, match_method );

即模板匹配函数,参数含义分别为:待匹配图像,模版图像,输出结果图像,匹配方法.

匹配方法就是采取何种计算方式来衡量模板图像和代匹配图像某部分的相似(匹配)程度.
opencv提供了6种方法:

平方差匹配法 CV_TM_SQDIFF
归一化平方差匹配法 CV_TM_SQDIFF_NORMED
相关匹配法 CV_TM_CCORR
归一化相关匹配法 CV_TM_CCORR_NORMED
系数匹配法 CV_TM_CCOEFF
化相关系数匹配法 CV_TMCCOEFF_NORMED

需要注意的是对于方法SQDIFF和SQDIFF_NORMED两种方法来讲,越小的值就有着更高的匹配结果,而其余的方法则是数值越大匹配效果越好.
参考博客:https://blog.csdn.net/keith_bb/article/details/70050080

1.5 normalize()归一化函数

normalize( result, result, 0, 1, NORM_MINMAX, -1, Mat() );

参数含义:输入数组,输出数组,normalize的最小值,normalize的最大值,归一化类型,当type为负数的时候输出的type和输入的type相同.

归一化函数是为了后面数据处理的方便,其次是保证程序运行时收敛加快.

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值