matlab的normxcorr2和 opencv的matchTemplate
想要转matlab中的normxcorr2, 发现matchTemplate中有一个算法是基于NCC的, 使用后发现其实与normxcorr2并不相同, 所以做一下记录.
matlab中normxcorr2和 opencv 3.0 中matchTemplate的异同之处
matlab—–normxcorr2简要说明
normxcorr2 算法原理
假设 原始图像大小为 , 模板大小为 ,则normxcorr2返回的图像大小为 ,
因为其移动匹配的方式如下:
(图1)模板位于图像的最左上角时:
(图2)模板位于图像的最右下角时:
opencv—-matchTemplate
matchTemplate算法原理
matchTemplate有多种匹配方式, 其中一下这种是和normxcorr2(NCC)相对应的,(我没搞错吧..)
假设 原始图像大小为 , 模板大小为 ,则normxcorr2返回的图像大小为 ,
移动方式: 模板位于图像的最左上角时:
移动方式: 模板位于图像的最右下角时:
总结
matlab的normxcorr2 和 opencv的matchTemplate(TM_CCOEFF_NORMED)算法原理相同, 但是返回图的图像尺度不同.
normxcorr2 返回的尺度:
matchTemplate(TM_CCOEFF_NORMED)返回的尺度
毕竟, normxcorr2目的是NCC, matchTemplate目的是模板匹配, 没毛病~