OpenCV
开源计算机视觉库
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
目标检测

详细描述

枚举

枚举  cv::TemplateMatchModes {
  cv::TM_SQDIFF = 0 ,
  cv::TM_SQDIFF_NORMED = 1 ,
  cv::TM_CCORR = 2 ,
  cv::TM_CCORR_NORMED = 3 ,
  cv::TM_CCOEFF = 4 ,
  cv::TM_CCOEFF_NORMED = 5
}
 模板匹配操作的类型 更多…
 

函数

void cv::matchTemplate (InputArray image, InputArray templ, OutputArray result, int method, InputArray mask=noArray())
 比较模板与重叠的图像区域。
 

枚举类型文档

◆ TemplateMatchModes

#include <opencv2/imgproc.hpp>

模板匹配操作的类型

枚举器
TM_SQDIFF 
Python: cv.TM_SQDIFF

R(x,y)=x,y(T(x,y)I(x+x,y+y))2

带掩码

R(x,y)=x,y((T(x,y)I(x+x,y+y))M(x,y))2

TM_SQDIFF_NORMED 
Python: cv.TM_SQDIFF_NORMED

R(x,y)=x,y(T(x,y)I(x+x,y+y))2x,yT(x,y)2x,yI(x+x,y+y)2

带掩码

R(x,y)=x,y((T(x,y)I(x+x,y+y))M(x,y))2x,y(T(x,y)M(x,y))2x,y(I(x+x,y+y)M(x,y))2

TM_CCORR 
Python: cv.TM_CCORR

R(x,y)=x,y(T(x,y)I(x+x,y+y))

带掩码

R(x,y)=x,y(T(x,y)I(x+x,y+y)M(x,y)2)

TM_CCORR_NORMED 
Python: cv.TM_CCORR_NORMED

R(x,y)=x,y(T(x,y)I(x+x,y+y))x,yT(x,y)2x,yI(x+x,y+y)2

带掩码

R(x,y)=x,y(T(x,y)I(x+x,y+y)M(x,y)2)x,y(T(x,y)M(x,y))2x,y(I(x+x,y+y)M(x,y))2

TM_CCOEFF 
Python: cv.TM_CCOEFF

R(x,y)=x,y(T(x,y)I(x+x,y+y))

其中

T(x,y)=T(x,y)1/(wh)x,yT(x,y)I(x+x,y+y)=I(x+x,y+y)1/(wh)x,yI(x+x,y+y)

带掩码

T(x,y)=M(x,y)(T(x,y)1x,yM(x,y)x,y(T(x,y)M(x,y)))I(x+x,y+y)=M(x,y)(I(x+x,y+y)1x,yM(x,y)x,y(I(x+x,y+y)M(x,y)))

TM_CCOEFF_NORMED 
Python: cv.TM_CCOEFF_NORMED

R(x,y)=x,y(T(x,y)I(x+x,y+y))x,yT(x,y)2x,yI(x+x,y+y)2

函数文档

◆ matchTemplate()

void cv::matchTemplate ( InputArray image,
InputArray templ,
OutputArray result,
int method,
InputArray mask = noArray() )
Python
cv.matchTemplate(image, templ, method[, result[, mask]]) -> result

#include <opencv2/imgproc.hpp>

比较模板与重叠的图像区域。

该函数在图像 `image` 上滑动,使用指定的方法将大小为 w×h 的重叠块与模板 `templ` 进行比较,并将比较结果存储在 `result` 中。TemplateMatchModes 描述了可用比较方法的公式(I 表示图像,T 表示模板,R 表示结果,M 表示可选掩码)。求和是在模板和/或图像块上进行的:x=0...w1,y=0...h1

函数完成比较后,可以使用 minMaxLoc 函数找到最佳匹配项作为全局最小值(当使用 TM_SQDIFF 时)或全局最大值(当使用 TM_CCORRTM_CCOEFF 时)。对于彩色图像,分子中的模板求和以及分母中的每个求和都在所有通道上进行,并且对每个通道使用单独的平均值。也就是说,该函数可以接受彩色模板和彩色图像。结果仍然是单通道图像,更容易分析。

参数
image进行搜索的图像。必须是 8 位或 32 位浮点型。
templ搜索模板。它必须不大于源图像,并且具有相同的数据类型。
result比较结果映射。必须是单通道 32 位浮点型。如果图像为 W×H 且模板为 w×h ,则结果为 (Ww+1)×(Hh+1)
method指定比较方法的参数,参见 TemplateMatchModes
mask可选掩码。它必须与 `templ` 大小相同。它必须与模板具有相同数量的通道,或者只有一个通道,然后用于所有模板和图像通道。如果数据类型为 CV_8U,则掩码被解释为二进制掩码,这意味着仅使用掩码非零的元素,并且保持不变,与实际掩码值无关(权重等于 1)。对于数据类型 CV_32F,掩码值用作权重。TemplateMatchModes 中记录了精确的公式。