matchTemplate函数原型
void cv::matchTemplate(InputArray image,
InputArray templ,
OutputArray result,
int method,
InputArray mask = noArray()
)
| 参数 | 含义 |
|---|---|
| image | 正在运行搜索的图像。 它必须是 8 位或 32 位浮点数。 |
| templ | 搜索到的模板。 它必须不大于源图像并且具有相同的数据类型。 |
| result | 比较结果图。 它必须是单通道 32 位浮点数。 如果 image 是 W×H 并且 templ 是 w×h ,那么结果是 (W−w+1)×(H−h+1) |
| method | 指定比较方法的参数,请参见TemplateMatchModes |
| mask | 搜索模板的掩码。 它必须与 templ 具有相同的数据类型和大小。 默认情况下未设置。 目前,仅支持 TM_SQDIFF 和 TM_CCOEFF_NORMED 方法。 |
enum cv::TemplateMatchModes枚举量

将模板与重叠的图像区域进行比较。
该函数在图像中滑动,使用指定的方法将大小为 w×h 的重叠块与 templ 进行比较,并将比较结果存储在 result 中。 以下是可用比较方法的公式(I 表示图像,T 是模板,R 是结果)。求和是在模板和/或图像块上完成的:x′=0…w−1,y′=0…h−1
函数完成比较后,可以使用minMaxLoc函数以全局最小值(使用TM_SQDIFF时)或最大值(使用TM_CCORR或TM_CCOEFF时)找到最佳匹配。 在彩色图像的情况下,分子中的模板总和和分母中的每个总和在所有通道上完成,并且每个通道使用单独的平均值。 即该函数可以获取一个颜色模板和一个彩色图像。 结果仍然是单通道图像,更易于分析。
normalize函数原型
void cv::normalize(InputArray src,
InputOutputArray dst,
double alpha = 1,
double beta = 0,
int norm_type =

这篇博客介绍了OpenCV中的matchTemplate函数,用于在图像中进行模板匹配。通过匹配模板与图像的不同区域,计算相似度并得到结果矩阵。然后使用normalize函数进行归一化处理,再利用minMaxLoc找到最佳匹配的位置。最后,通过示例代码展示了如何在实际应用中使用这些函数来定位模板在图像中的位置。
最低0.47元/天 解锁文章
3233

被折叠的 条评论
为什么被折叠?



