模板匹配工具

模板匹配工具 (PM2dTool) 可训练图像模板,然后在之后输入的图像中寻找并定位与模板相似的区域。

输入输出终端说明

在工具块编辑区根据需要连接工具的输入输出,终端说明如下表所示。

Note

工具块编辑区中仅显示工具的常用输入输出终端,右击工具名称,选择“添加终端”,可在添加终端页面选择终端添加。

终端名称

终端类型

数据类型

内容描述

InputImage

输入型

VisionImage

输入的图像

TrainROI

输入型

Rect2i

训练区域

TrainAnchor

输入型

Point2d

锚点

TrainMinMag

输入型

Double

梯度幅度阈值

MatchROI

输入型

Rect2i

搜索区域

MinScore

输入型

Double

分数阈值

ApproximateCount

输出型

Int32

查找概述

AngleRange

输入型

Vec2d

匹配角度

ScaleRange

输入型

Vec2d

匹配尺度

TemplateImage

输出型

VisionImage

模板图像

Results

输出型

List`1

模板匹配结果

Note

模板匹配工具要求输入的图像是灰度图(CV_8UC1)。

参数说明

模板

  • 抓取训练图:点击 “抓取训练图”。工具自动复制输入的图像为 Train.Image 训练图。

  • 训练:模板相关参数设置完成后,点击“训练”,即训练模板。已训练的模板会显示在 模板匹配工具 页面左上角。

  • 训练区域-区域形状:若需将整张 Train.Image 训练图作为模板,将“区域形状”设置为“无-使用整个图像”;若需将在 Train.Image 训练图中选择某个区域作为模板,将“区域形状”设置为“Rectangle”。

    • X/Y:Rectangle 训练区域左上角坐标 (X,Y)。

    • 宽度:Rectangle 训练区域的宽度。

    • 高度:Rectangle 训练区域的高度。

    • 适应图像:工具自动取输入图像中心作为 Rectangle 训练区域的中心,Rectangle 训练区域大小自适应图像。

  • 锚点

    • X/Y:设置锚点的坐标 (X,Y)。

    • 中心锚点:点击“中心锚点”,锚点自动位于图像中央。

    Tip

    建议将模板图像的某一特征点作为锚点。

  • 梯度幅度阈值:边缘检测时用到的参数。若图中每个像素点的灰度值与其周围像素点的灰度值的差值超过此阈值,则认为该像素点是边缘。

搜索区域

  • 区域形状:若需选择整个输入图为搜索区域,则将搜索区域的“区域形状”设置为“无-使用整个图像”;若需选择输入图部分区域为搜索区域,则将搜索区域的“区域形状”设置为“Rectangle”。

    • X/Y:Rectangle 搜索区域左上角坐标 (X,Y)。

    • 宽度:Rectangle 搜索区域的宽度。

    • 高度:Rectangle 搜索区域的高度。

    • 适应图像:Rectangle 搜索区域自动位于图像中央,大小与图像适应。

运行参数

  • 查找概数:指定查找目标大概的数量,此参数仅作运算时的参考值,不代表最终查找结果的个数。

  • 分数阈值:建议取 0.1~1 之间。匹配分数阈值设置越高,理论上匹配个数会下降,但匹配质量会明显上升。

  • 匹配角度:匹配目标相对于模板的旋转角度。在 [下界 , 上界] 角度范围进行模板匹配。

  • 匹配尺度:匹配目标相对于模板的缩放倍数。在 [下界 , 上界] 尺寸范围进行模板匹配。

图形

  • 显示锚点:勾选“显示锚点”,输入图中会显示识别结果的锚点。

  • 显示匹配区域:勾选“显示匹配区域”,输入图中会显示匹配区域。

结果说明

工程运行后,匹配成功的结果在 Input.Image 输入图中用黄色矩形框高亮显示。

结果栏显示对应匹配结果数据。

  • ID:匹配结果 ID 号。

  • 分数:匹配分数区间 (0 , 1.0]。分数越大,匹配程度越高。

  • 尺度:匹配结果相对于模板的缩放倍数。

  • 角度:匹配结果相对于模板的旋转角度。

  • 锚点X/Y:匹配结果的锚点坐标。

  • X/Y:匹配结果的中心坐标 (X,Y)。

  • 宽度/高度:匹配结果的宽度和高度。

  • 精细度:算法匹配精细程度。精细度区间 (0 , 1.0]。值小于 1,表明当前匹配结果是采用粗略匹配得到的。值越小,匹配程度越粗略。