以非数学方式解释opencv模板匹配方法之间的差异

Aar*_*hen 1 opencv computer-vision template-matching

我正在尝试使用opencv在图像中找到一些模板。尽管opencv有几种模板匹配方法,但要通过看一下它们的数学等式来理解它们的区别以及何时使用它们是很麻烦的:

  • CV_TM_SQDIFF
  • CV_TM_SQDIFF_NORMED
  • CV_TM_CCORR
  • CV_TM_CCORR_NORMED
  • CV_TM_CCOEFF

有人可以用非数学的方式解释所有这些方法之间的主要区别吗?

Era*_*n W 6

模板匹配的一般思想是为目标模板提供目标图像中的每个位置I,相似性度量或分数T。该过程的输出是图像R

每个元件在R从模板,其超过的范围跨度计算x'y',并且在窗口中I的相同的尺寸。

现在,您有两个窗口,并且想知道它们有多相似:

CV_TM_SQDIFF-平方差和(或SSD):

简单欧几里德距离(平方):

  • 取每对像素减去
  • 平方差
  • 对所有平方求和

CV_TM_SQDIFF_NORMED-固态硬盘

这在实践中很少使用,但是在接下来的方法中,归一化部分相似。

提名人术语与上述相同,但除以一个因子,该因子由以下乘积的平方根计算得出:

  • 模板的总和,平方
  • 图像窗口的总和,平方

CV_TM_CCORR-互相关

基本上,这是一个点积:

  • 取每对像素乘以
  • 对所有产品求和

CV_TM_CCOEFF-交叉系数

类似于交叉相关,但使用它们的协方差进行了归一化(我发现很难在没有数学的情况下进行解释。但是, 在某些示例中,我将参考 mathworldmathworks