• HALCON基础 [第19节] 关于模板


    HALCON 基础[19节] 关于模板

    create_template(Template : : FirstErrorNumLevelOptimizeGrayValues : TemplateID)

    运算符create_template预处理作为图像传递的模式(模板)以用于模板匹配。在模板ID被进一步分配给TemplateID之后,以后将使用该编号。模板的形状和尺寸可以任意选择。需要明白,匹配只适用于模板完全符合图像的那部分图像。

    【1】Template

    模板的选择使其不包含(变化的)背景像素。在这里,您可以使用模板的任意形状,而不限于矩形。要创建模板区域,可以使用分割运算符,如threshold或draw_x运算符之一。在亚像素的情况下,精确匹配模板还必须比图案小一个像素(即,一个像素边界到变化的背景)。这可以通过应用操作员腐蚀圈来完成。

    【2】参数NumLevel:

    指定可用于匹配的棱锥体级别数(NumLevel=1表示仅原始灰度值)。稍后用于匹配的级别数将低于或等于此值。如果模式由于缩放而变得太小,金字塔级别的最大数量将自动减少(没有错误消息)。

    【3】参数GrayValues

    定义是使用原始灰度值(“original”、“normalized”)还是使用边缘振幅(“gradient”、“sobel”)。在‘original’中,差异的总和被用作特征,如果光照没有变化,这种特征是非常稳定和快速的。”如果照明发生变化,则使用“规格化”。这个方法有点慢,也不太稳定。请注意,“normalized”允许补偿附加照明变化。如果灰度值也发生乘法变化,则应使用基于相关性的匹配(create_ncc_model模式)。如果照明没有变化,应使用“original”模式。边缘振幅是另一种对光照变化保持不变的方法。缺点是执行时间增加,并且对模式形状的变化更敏感。“gradient渐变”模式速度稍快,但对噪声更敏感。

    当使用边缘振幅时(如“sobel”),通常需要选择更高的匹配误差。如果需要,由灰度值选择的模式将在匹配过程中自动调用适当的过滤器。

    作为渐变法“gradient”的替代方法,如果照明的变化是已知的,可以使用操作符集“set_offset_template”模板。

    【4】参数Optimize

    指定是否必须针对运行时优化模式。这种优化会导致创建模板的时间更长,但会减少匹配的时间。此外,优化后的匹配更加稳定,即减少了错过匹配的可能性。在匹配过程中,优化过程首先选择最稳定、最显著的灰度值进行测试。使用这种技术,错误的匹配可以很早地消除。

    模板的参考位置是其重心。L.e.如果将模板应用于原始图像,则返回重心。可以使用运算符set_reference_template.调整此默认引用。

    在亚像素模式下,计算一个特殊的位置校正,在每次匹配后添加:模板应用于原始图像,并将找到的位置与重心之间的差用作校正向量。这对于纹理上下文中的模式或非对称模式非常重要。对于大多数模板,这个校正向量接近于零。

    如果不再使用该模式,则必须由操作员clear_template模板释放它,以便释放内存。

    在使用独立于图像大小存储的模板之前,可以使用adapt_template模板将其显式地调整为特定图像大小的大小。

    后记:halcon的模板很容易用错,在后文中,我们将详细收集各种各样的模板误用。

  • 相关阅读:
    有向强连通分支Tarjan算法
    让理科生沉默,让文科生落泪的题
    迷宫求解(数据结构栈应用)
    编程中无穷大常量的设定技巧
    poj 3159 差分约束+spfa
    codevs 1690 线段树
    uvalive 2756 环形排列颠倒的次数
    poj 2182 树状数组
    uva 10943 数学
    uva 10780 分解质因数
  • 原文地址:https://www.cnblogs.com/gongdiwudu/p/14059735.html
Copyright © 2020-2023  润新知