以非数学方式解释opencv的模板匹配方法之间的区别
Explain difference between opencv's template matching methods in non-mathematical way
我正在尝试使用 opencv 在图像中查找一些模板。虽然 opencv 有几种模板匹配方法,但我很难通过查看它们的数学方程来理解它们的区别以及何时使用它们:
- CV_TM_SQDIFF
- CV_TM_SQDIFF_NORMED
- CV_TM_CCORR
- CV_TM_CCORR_NORMED
- CV_TM_CCOEFF
有人可以用非数学的方式解释所有这些方法之间的主要区别吗?
模板匹配的总体思路是为目标图像中的每个位置 I
、给定模板 T
的相似性度量或得分。此过程的输出是图像 R
.
R
中的每个元素都是根据模板计算的,模板跨越x'
和y'
的范围,I
中的window大小相同。
现在,你有两个 windows,你想知道它们有多相似:
CV_TM_SQDIFF - 差平方和(或 SSD):
简单欧氏距离(平方):
- 取每对像素并减去
- 平方差
- 对所有方块求和
CV_TM_SQDIFF_NORMED - SSD 标准
这在实践中很少使用,但在接下来的方法中归一化部分是相似的。
提名项与上面相同,但除以一个因子,从
- 乘积的平方根:
- 模板总和,平方
- 图像总和window,平方
CV_TM_CCORR - 互相关
基本上,这是一个点积:
- 取每对像素并相乘
- 对所有产品求和
CV_TM_CCOEFF - 交叉系数
类似于互相关,但用它们的协方差归一化了(如果没有数学我很难解释。但我会参考
mathworld
或 mathworks
一些例子
我正在尝试使用 opencv 在图像中查找一些模板。虽然 opencv 有几种模板匹配方法,但我很难通过查看它们的数学方程来理解它们的区别以及何时使用它们:
- CV_TM_SQDIFF
- CV_TM_SQDIFF_NORMED
- CV_TM_CCORR
- CV_TM_CCORR_NORMED
- CV_TM_CCOEFF
有人可以用非数学的方式解释所有这些方法之间的主要区别吗?
模板匹配的总体思路是为目标图像中的每个位置 I
、给定模板 T
的相似性度量或得分。此过程的输出是图像 R
.
R
中的每个元素都是根据模板计算的,模板跨越x'
和y'
的范围,I
中的window大小相同。
现在,你有两个 windows,你想知道它们有多相似:
CV_TM_SQDIFF - 差平方和(或 SSD):
简单欧氏距离(平方):
- 取每对像素并减去
- 平方差
- 对所有方块求和
CV_TM_SQDIFF_NORMED - SSD 标准
这在实践中很少使用,但在接下来的方法中归一化部分是相似的。
提名项与上面相同,但除以一个因子,从 - 乘积的平方根:
- 模板总和,平方
- 图像总和window,平方
CV_TM_CCORR - 互相关
基本上,这是一个点积:
- 取每对像素并相乘
- 对所有产品求和
CV_TM_CCOEFF - 交叉系数
类似于互相关,但用它们的协方差归一化了(如果没有数学我很难解释。但我会参考 mathworld 或 mathworks 一些例子