# CompareImage

CompareImage 将感兴趣区域与模板图像进行比较，并返回具有白色像素的图像，其中该区域在一定容差内与模板不匹配。

## CompareImage 概述

CompareImage 旨在在选中属性表中的 ForceTrain 复选框时从当前图像中提取模板。用户取消选中复选框后，CompareImage 可以将模板中的像素映射到输入图像以进行比较并生成灰度输出图像。在一定容差范围内与模板图像不匹配的像素将显示为亮像素或白色像素。

## CompareImage 输入

参数 | 说明
图像 | 该参数必须在包含 图像 数据结构的电子表格单元格中使用单元格引用；默认情况下，此参数引用 A0，即包含由 函数返回的 Image 数据结构的单元格。此参数还可以引用其他 Image 数据结构，例如视觉工具图像函数返回的那些数据结构。
固定 | 定义相对于固定输入或视觉工具函数的图像坐标系输出的关注区域 (ROI)。根据“固定坐标”来设置的 ROI 可以确保如果“固定坐标” 被旋转或转换，相应的 ROI 也会根据“固定坐标”而旋转或转换。 默认设置为(0,0,0)，图像的最左上方。
X | 图像坐标中的 X 偏移。
Y | 图像坐标中的 Y 偏移。
Theta | 图像坐标系中图像 X 轴的旋转。（顺时针 +/-360 度）
区域 | 也称为关注区域 (ROI)，指定要进行分析的图像区域。双击区域参数以创建可以变换和旋转的交互图形模式。选择此参数并按属性表的作业编辑工具栏上的最大化区域按钮，自动拉伸区域以覆盖整个图像。
X | 在固定坐标中，偏移原点的 x 值。
Y | 在固定坐标中，偏移原点的 y 值。
宽度 | 沿区域 x 轴的尺寸。
高度 | 沿区域 y 轴的尺寸。
角度 | 在固定坐标上的方向。
注意:固定和区域参数必须在图像的范围内定义；否则，该函数将返回 #ERR。
ForceTrain | 指定何时从当前图像中提取模板：修改 ROI 尺寸或选择 ForceTrain 参数时。
0 = OFF（默认值） | 仅当修改 ROI 尺寸时，才会从当前图像中提取模板。一旦用户选择（或“训练”）模板图像，这将禁用“训练”参数并防止模板被覆盖。
1 = ON | 模板是从当前图像中提取的。如果用户仍在选择（或“训练”）模板图像的过程中，则选择此选项。
边缘范围 | 指定图像比较期间容许的边缘周围的像素数（0–24；默认值 = 3）。数字越大，模板和输入图像之间的边缘匹配越不严格（换句话说，不完美匹配的边缘不太可能被描述为输出图像中的差异）。
插值法 | 指定将模板映射到输入图像以生成差异的输出图像时要执行的像素比较类型。
0 = 最近邻域（默认值） | 将模板中的每个像素与输入图像中最近的像素进行比较，以计算每个像素的归一化灰度差。这是一种更快但不太准确的方法。
1 = 双线性 | 将模板中的每个像素与加权平均值（表示输入图像中四个最近像素的灰度值）进行比较，以计算每个像素的归一化灰度差。这是一种更准确但速度较慢的方法。
显示 | 指定哪些图形叠加显示在图像上面。
0 = 隐藏所有（默认值） | 可用的图形项将被隐藏，除非在电子表格中突出显示包含 CompareImage 函数的单元格。
1 = 仅结果图形 | 处理后的图像将始终显示。
2 = 仅输入图形 | 与输入图像区域关联的图形项目将始终显示。
3 = 全部显示：输入图形和模板图像 | 与输入图像区域相关的图形项将始终显示；但是，在 CompareImage 属性表中，模板图像也会显示。

## CompareImage 输出

返回 | 包含已处理图像的 Image 数据结构，如果任何输入参数无效，则为 #ERR。

## CompareImage 示例

在此示例中，目标是使用 CompareImage 将“良好”垫片的模板图像与生产线上的垫片输入图像进行比较。

首先，在将 CompareImage 插入电子表格后，用户通过双击属性表中的“区域”一词来定义 ROI，该词消失以显示覆盖在图像上的红色 ROI 框。用户使用光标移动或调整框的大小，然后单击“作业编辑”工具栏上的确定按钮（或按 Enter 键）以确认选择并返回到属性表。

接下来，用户将工具固定到另一个数据结构。在固定中，用户识别出现在对象的所有实例上的独特特征，并将其指定为后续视觉工具的参考点。这允许进行精确的比较或检查，即使对象在生产线上略微旋转或移动。

要固定该功能，用户单击属性表中的“固定”一词，然后单击属性表工具栏上的绝对参考 或相对参考 按钮。

属性表消失，显示 In-Sight 电子表格。用户移动光标从电子表格中的另一个数据结构（例如 FindPatterns）中选择行、列和角度单元格作为固定的参考，然后单击“作业编辑”工具栏上的确定按钮（或按 Enter 键) 确认选择并返回属性表。

然后，用户确保选中属性表中的 ForceTrain 复选框，以便在手动触发图像采集时自动提取模板图像（下图）。（但是，只需选择 ForceTrain 复选框即可触发图像采集，因此如果当前图像可接受，用户可以跳过设置图像并手动触发采集。）选择模板后，用户取消选择复选框以防止覆盖模板。

接受其他参数的默认设置并单击属性表中的确定，即可完成此示例的配置并将该功能应用于输入图像。

在运行时，该工具将模板图像与输入图像进行比较。“坏”的输入图像可能包含被白色标记（下图）损坏的垫圈。

两者之间的差异在灰度输出图像（下图）中显示为亮像素。

另一个工具（例如，DetectBlobs；见下文）可以参考输出图像来决定垫片是通过还是未通过检查。