# TrainPatMaxPattern

从图像中提取和训练图案以用于 FindPatMaxPatterns 函数。

## TrainPatMaxPattern 概述

PatMax® 图案是几何特征的集合，其中每个特征都是不同像素值的两个区域之间边界上的点。TrainPatMaxPattern训练图案，然后使用 FindPatMaxPatterns 在图像中定位该图案的一个或多个实例。PatMax 提供了三个关键特性，使其有别于机器视觉中可用的其他图案定位技术：

- 外观旋转、缩放和/或拉伸的对象的高速定位
- 基于对象形状而非灰度值的定位技术
- 非常高的准确性

PatMax 与其他图案定位技术的不同之处在于，它不是基于像素网格的表示法，无法高效准确地旋转或缩放。相反，PatMax 使用了一种基于特征的表示法，可以快速准确地进行图案匹配。

注意:当包含训练 PatMax 图案的单元格突出显示时，会显示图案的特征。这允许用户在不输入 TrainPatMaxPattern 的属性表的情况下查看训练的图案，这将重新训练图案。

## TrainPatMaxPattern 输入

参数 | 说明
图像 | This parameter must reference a spreadsheet cell that contains an 图像 data structure; by default, this parameter references A0, the cell containing the data structure. This parameter can also reference other Image data structures, such as those returned by the 图像 Vision Data Access functions or 坐标变换函数.
固定 | 定义相对于固定输入或视觉工具函数的图像坐标系输出的关注区域 (ROI)。根据“固定坐标”来设置的 ROI 可以确保如果“固定坐标” 被旋转或转换，相应的 ROI 也会根据“固定坐标”而旋转或转换。 默认设置为(0,0,0)，图像的最左上方。
X (默认值= 0) | 图像坐标中的 X 偏移。
Y (默认值 = 0) | 图像坐标中的 Y 偏移。
Theta (默认值 = 0) | 图像坐标系中图像 X 轴的旋转。（顺时针 +/-360 度）
图案区域 | 也称为关注区域 (ROI)，指定要进行分析的图像区域。双击区域参数以创建可以变换和旋转的交互图形模式。选择此参数并按属性表的作业编辑工具栏上的最大化区域按钮，自动拉伸区域以覆盖整个图像。
X | 在固定坐标中，偏移原点的 x 值。
Y | 在固定坐标中，偏移原点的 y 值。
宽度 | 沿区域 x 轴的尺寸。
高度 | 沿区域 y 轴的尺寸。
角度 | 在固定坐标上的方向。
曲线 | 在区域 x 轴和相对的边界线之间的角度偏差。
注意:固定和区域参数必须在图像的范围内定义；否则，该函数将返回 #ERR。
外部区域 | 此参数对Annulus、Circle、区域、EditAnnulus、EditCircle、EditCompositeRegion、EditPolygon、EditRegion使用单元格引用。使用此参数时，该函数将忽略区域和固定设置并检查引用区域指定的图像区域。如果引用了编辑复合区域控件，则检查区域可以是多种形状的混合。在混合区域中的任何一个形状可以被指定从（遮蔽）检查区域中添加或删除。 注意:如果此参数已设置为对外部区域的引用，要使用函数的内部区域，必须通过输入值 0 代替单元格引用手动将此参数设置为零。否则，该函数将继续引用外部区域。
图案原点 | 指定训练图案原点的 X 和 Y，作为距训练区域中心的偏移量。
偏移量 X | 指定距训练图案中心的 x 偏移量。
偏移量 Y | 指定距训练图案中心的 y 偏移量。
图案设置 | 指定训练图案的设置。
算法 | 指定用于训练图案的算法。
0 = PatMax（默认值） | PatMax 算法提供比 PatQuick 更高的准确性但，需要更多时间来执行。
1 = PatQuick | PatQuick 算法的准确度低于 PatMax，但执行所需的时间更短。
弹性 | 指定周长偏差量（0 到 10； 0 = 默认值）。 0 = 无公差 1 或更大 = 灵活边界
忽略极性 | 指定是否可以找到包含与训练图案相关的颜色反转匹配特征的匹配项。
0 = OFF（默认值） | 不要匹配颜色反转的特征。
1 = ON | 允许颜色反转匹配特征。
灵敏度 | 0 = 未实施
粗粒度 | 指定粗粒度作为像素值。粗粒度用于查找大特征以在运行时图像中快速找到近似图案匹配（0 到 10；0 = 默认值）。 注意:如果指定的值小于 1.0，则两者粗粒度和细粒度参数值将自动计算。
细粒度 | 指定细粒度作为像素值。细粒度用于寻找小特征以精确确定图案位置（0 到 10；0 = 默认值）。 注意: 如果指定的值小于 1.0，则两者粗粒度和细粒度参数值将自动计算。 细粒度的值不能大于粗粒度的值。
训练事件 | 指定对包含模型训练事件触发器的单元格的单元格引用。 注意:当属性表打开或事件触发器（例如按钮或其他有条件启用的单元格）非零时，就会进行训练。
重用训练图像 | 指定在修改图案设置参数时是否保存和使用用于训练图案的图像。
0 = OFF（默认值） | 当前图像（即在图像参数中指定的图像）将用于训练/重新训练图案。
1 = ON | 如果一个或多个图案设置参数被修改，最初用于训练图案的图像将用于重新训练图案。首次启用时，图像参数标识的图像将用于训练图案，图像的副本将保存在作业中。对图案设置参数所做的任何后续更改都将使用存储的图像进行。 注意: 启用此参数后，如果固定输入被修改，图案区域（或外部区域）被移动或修改，该函数将调整输入图像中的训练区域，保存新图像并重新训练图案。 如果重用训练图像参数为 ON（启用），但尚未训练图案，则该函数将返回 #ERR，直到参数为 OFF（禁用）并训练新图案。
超时 | 指定时间量，以毫秒为单位（0 到 30000），该函数将在暂停执行并返回#ERR 之前搜索有效图案。将该值设置为 0 将禁用该设置，并且不会应用超时。
显示 | 指定图像上 TrainPatMaxPattern 图形的显示模式。
0 = 全部隐藏 | 所有图形都将隐藏，除非包含 TrainPatMaxPattern 函数的单元格在电子表格中突出显示。
1 = 仅结果图形 | 图案的训练特征将始终显示。
2 = 输入和结果图形 | 输入图像区域、图案原点和训练的特征将始终显示。 注意:训练特征的颜色（绿色、黄色和红色）表示匹配候选特征的质量。绿色代表高质量；红色代表低质量。应调整粒度参数，直到所有训练的特征都变成绿色或选择质量更好的图像进行训练。鲜明的特征（边缘）和良好的图像对比度将产生最佳结果。
3 = 显示全部：输入、结果和训练图像 | 输入图像区域、图案原点、训练特征和训练图像将始终显示。

## TrainPatMaxPattern 输出

返回 | 包含训练图案的 Patterns 数据结构，如果任何输入参数无效，则为 #ERR。
结果 | 在 TrainPatMaxPattern 最初插入单元格时，训练状态将自动出现在右侧相邻的单元格中。如果无法训练图案，则会插入#ERR。 一个 图案Vision Data Access functions 会自动插入电子表格中：
已训练 | GetTrained(图案) | 如果图案已成功训练，则返回 1，如果无法训练图案，则返回 0。
注意:在函数的属性表中，提供了补充信息字符串作为更好地训练图案的建议。可能的信息字符串包括： 图案包含的匹配特征可能太少。 难以自动设置特征粒度；手动设置粒度。 图案不如预期的精确，因为训练图像较模糊。 图案结果可能不稳定，因为粗糙特征具有相同的方向。 由于众多精细特性，执行时间可能会增加；手动设置粒度。 图案包含的信息可能不足以可靠地测量角度或比例。 要将信息字符串插入电子表格，请使用 GetInfoString 视觉数据访问函数。