# InspectEdgePosition

InspectEdgePosition 函数用于构建边缘模型，以对 InspectEdge 函数返回的边缘执行高级边缘分析。该数据用于确定边缘的位置、识别外点边缘以及可选地构建线拟合。

## InspectEdgePosition 概述

将函数插入电子表格后，必须参考 InspectEdge 函数输出的 Inspect 数据结构。建立对 InspectEdge 函数的引用后，通过配置 InspectEdgePosition 函数的参数来创建边缘模型。边缘模型涉及定义以下内容：

- 线拟合的类型 - 直线或圆形。
- 检测边缘的方向。
- 边缘过渡的类型 - 白色到黑色，反之亦然。
- 用于筛选不需要的边缘的边缘评分标准。
- 用于从线拟合中筛选不需要的边缘的线拟合条件。

一旦建立了边缘模型，该函数会将候选边缘与边缘模型进行比较，并报告与模型的偏差。

## InspectEdgePosition 输入

参数 | 说明
InspectEdge | 指定对包含由InspectEdge函数返回的有效检查数据结构的电子表格单元格的引用。
线拟合 | 指定要根据检测到的边缘构造的线拟合类型。
0 = 无 | 该函数不会创建线拟合。相对于 ROI 的中心测量找到的边缘的位置。
1 = 直线拟合 | 相对于线拟合测量找到的边缘的位置。
2 = 曲线拟合 | 该函数将从检测到的边缘创建圆形线拟合。
3 = 自动拟合（默认） | 该函数会根据引用区域自动创建直线或圆拟合。
4 = 区域 | 该函数不会创建线拟合。相对于 ROI 的中心测量找到的边缘的位置。
查找边缘方向 | 指定函数将尝试检测边缘的方向。添加深绿色箭头以图形方式说明检测边缘的方向。拟合线将在图像中以图形方式标记，第一条拟合线标记为 0，第二条拟合线标记为 1。 注意:如果引用的 InspectEdge 函数的关注区域 (ROI) 弯曲成曲线，则检查将相对于曲线的中心。当查找边缘方向参数设置为左到右时，它会朝向曲线中心进行检查，而当设置为右到左时，它会远离曲线的中心进行检查。
0 = 从左到右（默认） | 该函数将尝试检测从 ROI 左侧到右侧的边缘。 示例
1 = 右到左 | 该函数将尝试检测从 ROI 右侧到左侧的边缘。 示例
边缘：第一 | 指定要检测的第一个边缘的对比度过渡，由查找边缘方向参数确定。
1 = 黑到白 | 边缘从黑色像素过渡到白色像素。
2 = 白到黑（默认） | 边缘从白色像素过渡到黑色像素。
3 = 二者之一 | 边缘可以从黑到白或从白到黑过渡，该函数将确定正确的过渡。指定过渡可以提高函数的性能。
边缘评分 | 指定将用于确定边缘是否符合既定标准的边缘评分模式。
分数阈值 | 指定一个评分阈值以筛选掉分数（1 到 100；默认值 = 10）低于此值的边缘。
边缘规则 | 指定计算分数时最重要的边缘类型。
1 = 第一 | 检测到的第一个边缘受到最优先考虑。
2 = 最强 | 具有最强对比度过渡的边缘受到最优先考虑。
3 = 第一强（默认） | 检测到的第一个具有最强过渡的边缘受到最优先考虑。
对比度上限 | 指定被视为边缘的边缘对比度过渡的上限（2 到 255；默认值 = 255）；边缘对比度过渡高于此值的边缘将具有相同的最高分数。
高级线拟合 | 指定函数应如何构造线拟合。
筛选离群值 | 指定该函数将从拟合线中移除比拟合距离筛选器参数中指定的距离更远的点。
0 = OFF（默认值） | 该函数不会考虑外点边缘。
1 = ON | 该函数将在其计算中考虑外点边缘。
拟合距离筛选器 | 以像素为单位指定距离（有效范围是 In-Sight 视觉系统图像宽度的 1 到 3 倍；默认值 = 2），边缘必须来自原始拟合线才能在重新拟合计算中使用。此设置有助于防止缺陷影响线拟合。筛选异常值必须“打开”才能启用此设置。
最远点筛选距离 | 指定外点与线拟合的距离，但仍被视为线拟合的一部分（有效范围为 In-Sight 视觉系统图像宽度的 1 到 3 倍；默认值为视觉系统图像宽度的 3 倍）；任何大于此值的边缘都将被忽略。
重新评分 | 指定将对边重新评分，以选择更接近线拟合的边缘。
0 = OFF（默认值） | 该函数不会对边缘重新评分来考虑外点。
1 = ON | 该函数将对边缘重新评分以在计算中考虑外点边缘。
重新拟合 | 指定函数将在对边缘重新评分后重新拟合线。启用此功能有助于线条拟合的准确性，但会增加处理时间。
0 = OFF（默认值） | 该函数不会尝试重新拟合线拟合。
1 = ON | 边缘重新评分后，该函数将重新拟合线拟合。
卡尺索引 | 指定要在图像上显示的卡尺（卡尺将以绿色轮廓显示）；显示的默认卡尺为 0。
显示 | 指定图像顶部 InspectEdgePosition 图形叠加的显示模式。
0 = 隐藏所有（默认值） | 所有图形都将被隐藏，除非在电子表格中突出显示包含 InspectEdgePosition 函数的单元格。
1 = 仅结果图形 | 线拟合、检测到的缺陷、离群点和/或间隙将始终显示。
2 = 结果图形和卡尺细节 | 线拟合、检测到的缺陷、离群点和/或间隙、检测到的边缘点和索引卡尺窗口将始终显示。
3 = 显示全部：输入和结果图形 | 输入区域、线拟合、检测到的缺陷、离群点和/或间隙以及检测到的边缘点将始终显示。

## InspectEdgePosition 输出

返回 | 包含按分数排序的匹配边缘的 Inspect 数据结构，如果任何输入参数无效，则为 #ERR。
结果 | 最初将 InspectEdgePosition 插入单元格时，会使用以下 InspectEdge Vision Data Access functions 在电子表格中创建结果表。InspectEdgePosition 数据结构结果表分为两部分：最远的点和直线拟合：
电子表格名称 | 函数名称 | 说明
最远点
第 1 点/第 2 点 | GetExtremePosPoints(检查, 侧面) | 返回卡尺的索引，其边缘离任一侧的线拟合最远（近 = 0 和远 = 1），或者，如果线拟合设置为无，则返回最接近区域任一边缘的点。
X | GetEdgePosX(检查, 卡尺索引, 边缘索引) | 返回指定卡尺边缘索引位置（点 1）的 x 坐标。
Y | GetEdgePosY(检查, 卡尺索引, 边缘索引) | 返回指定卡尺边缘索引位置（点 2）的 y 坐标。
直线拟合
X0 / Y1 | GetFitEdgePosX(检查, 点索引) | 返回线拟合的指定点的 x 坐标。
Y0 / Y1 | GetFitEdgePosY(检查, 点索引) | 返回线拟合的指定点的 y 坐标。
中心 X | GetFitEdgePosCenterX(检查, 点索引) | 在指定圆线拟合时插入，返回圆线拟合中心的 x 坐标。
中心 Y | GetFitEdgePosCenterY(检查, 点索引) | 在指定圆线拟合时插入，返回圆线拟合中心的 y 坐标。
半径 | GetFitEdgePosRadius(检查, 点索引) | 在指定圆线拟合时插入，返回距圆线拟合中心的距离。
InspectEdgePosition 的所有公式都符合以下条件： 注意: Inspect = InspectEdgePosition 函数输出的 Inspect 数据结构 卡尺索引 = 0 到 N（卡尺总数等于 InspectedForDefect 函数引用的 InspectEdge 函数输出的卡尺数量） 边缘对索引 = 0 或 1 边索引 = 0 到 N 点索引 = 0 到 1（0 = 开始，1 = 结束）