opencv matchtemplate源码中使用什么方法处理彩色图像?

sun*_*yy5 5 python opencv image colors matchtemplate

opencv matchtemplate 的文档

对于彩色图像,分子中的模板求和和分母中的每个总和是在所有通道上完成的,并且每个通道使用单独的平均值。也就是说,该函数可以采用颜色模板和彩色图像。结果仍然是单通道图像,更容易分析。

我不明白这意味着什么。对于彩色模板和彩色图像,单通道图像(结果)是所有通道结果的平均值吗?

templmatch.cpp源代码:github

Sun*_*eef 2

查看 中convolve_32F使用的函数的源代码matchTemplate,似乎彩色图像上的模板匹配实际上将彩色图像和彩色模板转换为列数是三倍的灰度图像,然后将图像和模板之间的卷积应用为灰度图像。

为了说明如何转换为灰度图像,请考虑以下具有 4 个颜色像素的 2x2 图像(用 BGR 值编写):

(1, 2, 3) (4, 5, 6)
(7, 8, 9) (10,11,12)
Run Code Online (Sandbox Code Playgroud)

就变成了下面的2x6灰度图像:

(1)  (2)  (3)  (4)  (5)  (6)
(7)  (8)  (9)  (10) (11) (12)
Run Code Online (Sandbox Code Playgroud)

它们像处理灰度图像一样执行卷积,然后通过从结果图像中的三个值中取出一个值来提取结果(相当于提取彩色图像的第一个通道)。