# InspectEdgeWidth

InspectEdgeWidth 函数用于构建边缘模型，以对 InspectEdge 函数返回的边缘对执行高级边缘分析。该数据用于检测边缘对并分析它们之间的距离。

## InspectEdgeWidth 概述

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

- 检测边缘的方向。
- 边缘过渡的类型 - 白色到黑色，反之亦然。
- 用于筛选不需要的边缘的边缘评分标准。
- 用于从线拟合中筛选不需要的边缘的线拟合条件。
- 遇到的宽度变化、缺陷和/或间隙的公差。
- 如果检测到焊珠路径，则为位置差异的容差。

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

注意： InspectEdgeWidth 函数可以与 InspectEdgeTrainBeadPath 和 InspectEdge 函数结合使用，以确定与焊珠路径相关的宽度和位置误差。InspectEdgeWidth 函数的 InspectEdge 参数必须引用 InspectEdge 函数输出的 Inspect 数据结构，该结构引用 InspectEdgeTrainBeadPath 函数。

## InspectEdgeWidth 输入

参数 | 说明
InspectEdge | 指定对包含由InspectEdge函数返回的有效检查数据结构的电子表格单元格的引用。
查找边缘方向 | 指定函数将尝试检测边缘的方向。添加深绿色箭头以图形方式说明检测边缘的方向。拟合线将在图像中以图形方式标记，第一条拟合线标记为 0，第二条拟合线标记为 1。 注意： 如果引用的 InspectEdge 函数的感兴趣区域 (ROI) 弯曲成曲线，则检查将相对于曲线的中心。当查找边缘方向参数设置为左到右时，它会朝向曲线中心进行检查，而当设置为右到左时，它会远离曲线的中心进行检查。
0 = 左到右 | 该函数将尝试检测从 ROI 左侧到右侧的边缘。 示例
1 = 右到左 | 该函数将尝试检测从 ROI 右侧到左侧的边缘。 示例
3 = 中心向外（默认） | 该函数将尝试检测从 ROI 中心到 ROI 上下边界的边缘（找到的边缘的顺序将与 ROI 上的“X”箭头方向相反）。 示例
2 = 外到内 | 该函数将尝试检测从 ROI 的上下边界到 ROI 中心的边缘（找到的边缘的顺序将与 ROI 上的“X”箭头方向相反）。 示例
边缘：第一 | 指定要检测的第一个边缘的对比度过渡，由查找边缘方向参数确定。
1 = 黑到白 | 边缘从黑色像素过渡到白色像素。
2 = 白到黑（默认） | 边缘从白色像素过渡到黑色像素。
3 = 二者之一 | 边缘可以从黑到白或从白到黑过渡，该函数将确定正确的过渡。指定过渡可以提高函数的性能。
边缘：第二 | 指定要检测的第二个边缘的对比度过渡，由查找边缘方向参数确定。
1 = 黑到白（默认） | 边缘从黑色像素过渡到白色像素。
2 = 白到黑 | 边缘从白色像素过渡到黑色像素。
3 = 二者之一 | 边缘可以从黑到白或从白到黑过渡，该函数将确定正确的过渡。指定过渡可以提高函数的性能。
边缘评分 | 指定将用于确定边缘是否符合既定标准的边缘评分模式。
分数阈值 | 指定一个评分阈值以筛选掉分数（1 到 100；默认值 = 10）低于此值的边缘。
边缘规则 | 指定计算分数时最重要的边缘类型。
1 = 第一 | 检测到的第一个边缘受到最优先考虑。
2 = 最强 | 具有最强对比度过渡的边缘受到最优先考虑。
3 = 第一最强 | 检测到的第一个具有最强过渡的边缘受到最优先考虑。
4 = 边缘对大小 | 以最接近对大小参数的大小检测到的边缘对受到最优先考虑。
5 = 第一个边缘对大小 | 以最接近对大小参数的大小检测到的第一个边缘对受到最优先考虑。
6 = 最强边缘对大小 | 检测到的具有最强过渡且尺寸最接近对大小参数的边对受到最优先考虑。
7 = 第一个最强边缘对大小 （默认） | 第一个具有最强过渡和最接近对大小参数的大小的边缘对受到最优先考虑。
对比度上限 | 指定被视为边缘的边缘对比度过渡的上限（2 到 255；默认值 = 255）；边缘对比度过渡高于此值的边缘将具有相同的最高分数。 注意： 边缘规则参数必须设置为最强、第一个最强、最强边缘对大小或第一个最强边缘对大小才能启用此参数。
对大小 | 指定获得最高分数的边缘对大小（有效范围是 In-Sight 视觉系统图像宽度的 1 到 3 倍；默认值 = 5） 。启用此参数时，检测到高于或低于此值的边缘对将按此值按比例评分。例如，如果对大小设置为 10，并且检测到两个候选边缘对，一个值为 8，另一个为 14，则将选择值为 8 的边缘对，因为它比第二边缘对边更接近此限制。 注意： 边缘规则参数必须设置为最强、第一个最强、最强边缘对大小或第一个最强边缘对大小才能启用此参数。
高级筛选 | 指定函数应如何构造线拟合。
重新评分 | 指定将对边重新评分，以选择更接近线拟合的边缘。
0 = OFF（默认） | 该函数不会对边缘重新评分来考虑外点。
1 = ON | 该函数将对边缘重新评分以在计算中考虑外点边缘。
线拟合 | 指定要根据检测到的边缘构造的线拟合类型。
1 = 直线拟合 | 该函数将从检测到的边缘创建直线拟合。
2 = 曲线拟合 | 该函数将从检测到的边缘创建圆形线拟合。
3 = 自动拟合（默认） | 该函数会根据引用区域自动创建直线或圆拟合。
筛选离群值 | 指定该函数将从拟合线中移除比拟合距离筛选器参数中指定的距离更远的点。
0 = OFF（默认） | 该函数不会考虑外点边缘。
1 = ON | 该函数将在其计算中考虑外点边缘。
拟合距离筛选器 | 以像素为单位指定距离（有效范围是 In-Sight 视觉系统图像宽度的 1 到 3 倍；默认值 = 2），边缘必须来自原始拟合线才能在重新拟合计算中使用。此设置有助于防止缺陷影响线拟合。筛选异常值必须“打开”才能启用此设置。
最大缺陷/间隙数 | 指定函数应该检测到的最大缺陷和/或间隙数（1 到 4096；默认值 = 5） 。该值分别应用于缺陷和间隙；例如，当设置为 5 时，该函数预计最多会遇到 5 个缺陷和 5 个间隙。此设置用于在电子表格中构建视觉数据访问结果表。
缺陷 | 指定用于根据线拟合确定边缘缺陷的参数。
最小宽度 | 指定检测到的边缘对之间小于此值的任何宽度距离（以像素为单位）都是缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为 3 像素。
最大宽度 | 指定检测到的边缘对之间大于此值的任何宽度距离（以像素为单位）都是缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为视觉系统图像宽度的 3 倍。 注意： 如果此值小于最小宽度参数，该函数将导致 #ERR。
已启用大小 | 指定函数是否考虑尺寸缺陷。大小缺陷解释了沿检测到的边缘对长度的宽度偏差。 注意： 当已启用大小和已启用区域都为 On 时，只会显示两个条件都失败的缺陷。
0 = OFF | 该函数不会考虑大小缺陷。
1 = ON （默认） | 该函数将根据“最小大小”和“最大大小”参数设置来解决尺寸缺陷。
最小大小 | 指定最小缺陷大小（以像素为单位）；小于该值的与线拟合的连续偏差不被视为缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为 3 像素。
最大大小 | 指定最大缺陷尺寸（以像素为单位）；大于该值的线拟合的连续偏差不被视为缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为视觉系统宽度的 3 倍。
已启用面积 | 指定函数是否考虑面积缺陷。面积缺陷考虑沿线拟合的长度以及缺陷边缘与线拟合的距离。 注意： 当已启用大小和已启用区域都为 On 时，只会显示两个条件都失败的缺陷。
0 = OFF | 该函数不会考虑面积缺陷。
1 = ON （默认） | 该函数将根据最小面积和最大面积参数设置来考虑面积缺陷。
最小面积 | 指定最小面积缺陷，以像素为单位（有效范围为 0.001 到 100000；默认值 = 10）；小于该值的区域不被视为缺陷。
最大面积 | 指定最大面积缺陷，以像素为单位（有效范围为 0.001 到 1000000；默认值 = 1000000）；大于该值的区域不被视为缺陷。
排序标准 | 指定如何对检测到的缺陷进行排序。
按大小（默认） | 该函数将按缺陷大小对检测到的缺陷进行排序（从最大到最小）。
按面积 | 该功能将按面积对检测到的缺陷进行排序（从最大到最小）。
按位置 | 该功能将根据检测到的缺陷的卡尺索引对其进行排序。
按宽度 | 该函数将检测到的缺陷按宽度从最大到最小进行排序。
间隙 | 指定用于确定边缘对中间隙的参数。
已启用 | 指定函数是否考虑找到的边对中的间隙。
0 = OFF | 该函数将不考虑差距。
1 = ON （默认） | 该函数将根据其他间隙参数设置计算间隙。
最小间隙 | 指定最小间隙（以像素为单位）；小于此值的间隙不被视为间隙。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为 3 像素。
最大间隙 | 指定最大间隙（以像素为单位）；大于此值的间隙不被视为间隙。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为视觉系统图像宽度的 3 倍。
最大位移 | 指定从区域中心到被视为间隙的边缘对中心的最大位移（以像素为单位）。有效范围是 In-Sight 视觉系统图像宽度的 1 到 3 倍；默认为视觉系统图像宽度的 3 倍。
忽略间隙末端 | 指定函数是否考虑在 ROI 开始和结束处检测到的间隙。
0 = OFF | 该函数不会考虑在 ROI 开始和结束时检测到的间隙。
1 = ON （默认） | 该函数将考虑在 ROI 开始和结束时检测到的间隙。
排序标准 | 指定如何对检测到的间隙进行排序。
按大小（默认） | 该函数将按大小对检测到的间隙进行排序（从最大到最小）。
按位置 | 该函数将根据卡尺索引对检测到的间隙进行排序。
位置 | 指定用于确定边缘对中位置缺陷的参数。这些参数将缺陷定义为与模型路径中心的偏差，由 InspectEdgeTrainBeadPath 函数输出。这些参数仅应在引用正在引用 InspectEdgeTrainBeadPath 函数的 InspectEdge 函数时使用。
已启用 | 指定函数是否考虑找到的边缘对中的位置缺陷。
0 = OFF（默认） | 该函数不会考虑位置缺陷。
1 = ON | 该函数将根据其他位置参数设置考虑位置缺陷。
最小距离 | 指定从检测到的焊珠路径中心的最小位置位移（以像素为单位）；小于该值的位置变化不被视为位置缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为 3 像素。
最大距离 | 指定从检测到的焊珠路径中心的最大位置位移（以像素为单位）；大于该值的位置变化不被视为位置缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为视觉系统图像宽度的 3 倍。
已启用大小 | 指定函数是否考虑尺寸缺陷。大小缺陷解释了沿检测到的边缘对长度的宽度偏差。 注意： 当“已启用大小”和“已启用区域”都为 On 时，只会显示两个条件都失败的缺陷。
0 = OFF | 该函数不会考虑大小缺陷。
1 = ON （默认） | 该函数将根据“最小大小”和“最大大小”参数设置来解决尺寸缺陷。
最小大小 | 指定最小缺陷大小（以像素为单位）；小于该值的与线拟合的连续偏差不被视为缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为 3 像素。
最大大小 | 指定最大缺陷尺寸（以像素为单位）；大于该值的线拟合的连续偏差不被视为缺陷。有效范围为 In-Sight 视觉系统图像宽度的 0.001 至 3 倍；默认为视觉系统宽度的 3 倍。
已启用面积 | 指定函数是否考虑面积缺陷。面积缺陷考虑沿线拟合的长度以及缺陷边缘与线拟合的距离。 注意： 当“已启用大小”和“已启用区域”都为 On 时，只会显示两个条件都失败的缺陷。
0 = OFF | 该函数不会考虑面积缺陷。
1 = ON （默认） | 该函数将根据最小面积和最大面积参数设置来考虑面积缺陷。
最小面积 | 指定最小区域缺陷（以像素为单位）；小于该值的区域不视为缺陷。有效范围为 0.001 至 100000；默认值为 10。
最大面积 | 指定最大区域缺陷（以像素为单位）；大于该值的面积不视为缺陷。有效范围为 0.001 至 1000000；默认值为 1000000。
排序标准 | 指定如何对检测到的缺陷进行排序。
按大小（默认） | 该函数将按缺陷大小对检测到的缺陷进行排序（从最大到最小）。
按面积 | 该功能将按面积对检测到的缺陷进行排序（从最大到最小）。
按位置 | 该功能将根据检测到的缺陷的卡尺索引对其进行排序。
按宽度 | 该函数将检测到的缺陷按宽度从最大到最小进行排序。
卡尺索引 | 指定要在图像上显示的卡尺（卡尺将以绿色轮廓显示）；显示的默认卡尺为 0。
显示 | 指定图像顶部边沿图形叠加的显示模式。
0 = 隐藏所有（默认） | 所有图形都将隐藏，除非包含 InspectedWidth 函数的单元格在电子表格中突出显示。
1 = 仅结果图形 | 线拟合、检测到的缺陷、离群点和/或间隙将始终显示。
2 = 结果图形和找到的边缘 | 线拟合、检测到的缺陷、离群点和/或间隙以及检测到的边缘点将始终显示。
3 = 结果图形和卡尺细节 | 线拟合、检测到的缺陷、离群点和/或间隙、检测到的边缘点和索引卡尺窗口将始终显示。
4 = 显示全部：输入和结果图形 | 输入区域、线拟合、检测到的缺陷、离群点和/或间隙以及检测到的边缘点将始终显示。

## InspectEdgeWidth 输出

返回 | 包含检测到的缺陷、极端和差距的 Inspect 数据结构，如果任何输入参数无效，则为 #ERR。
结果 | 在最初将 InspectEdgeWidth 插入单元格时，会在电子表格中创建结果表。 注意： 如果最大缺陷/间隙数参数的值大于零，InspectEdgeWidth 将自动插入一个结果表，其中包含最多 10 个条目，对应于数据结构中的前 10 个缺陷/间隙/边缘/边缘对。如果您希望显示更多条目，您可以通过复制最后一行并在末尾粘贴其他行来扩展表格。

## InspectEdgeWidth 视觉数据访问函数

下面的 InspectEdge 视觉数据访问函数 自动插入到电子表格中以创建数据结构结果表：

标签 | 函数 | 说明
总计数 | GetTotalCount(Inspect) | 返回结果的总数。
缺陷/间隙/位置 | GetWidthCount(Inspect, 曲线/间隙/位置) | 返回指定缺陷或间隙的总数（缺陷 = 0，间隙 = 1，位置 = 2）。
缺陷/间隙/位置
尺寸/区域/宽度/位置 | GetDefectGapValue(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引, 大小/区域/宽度) | 返回缺陷或间隙的大小、区域或宽度（缺陷 = 0，间隙 = 1，位置 = 2；大小 = 0，面积 = 1，宽度 = 2）。
X | GetDefectGapBoundsX(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的 x 坐标。
Y | GetDefectGapBoundsY(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的 y 坐标。
高度 | GetDefectGapBoundsHeight(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的高度。
宽度 | GetDefectGapBoundsWidth(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的宽度。
角度 | GetDefectGapBoundsAngle(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的角度。
曲线 | GetDefectGapBoundsCurve(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引) | 返回缺陷边界矩形的曲线。
开始/结束 | GetDefectGapCaliperIndex(Inspect, 缺陷/间隙索引, 缺陷/间隙/位置, 边缘对索引, 缺陷开始/结束) | 返回缺陷开始或结束的卡尺（开始 = 0，结束 = 1）。
极限 - 最远点 1/2
卡尺 | GetExtremeWidth(Inspect, 最薄/最厚) | 返回包含指定极限宽度（最薄 = 0 和最厚 = 1）的卡尺索引。
宽度 | GetWidth(Inspect, 卡尺索引) | 返回索引卡尺中的边缘宽度值；如果在索引卡尺中没有找到边缘，则返回 0。
X（开始和结束） | GetEdgeX(检查, 卡尺索引, 边缘对索引或边缘索引) | 返回被引用边缘的 x 坐标。
Y（开始和结束） | GetEdgeY(检查, 卡尺索引, 边缘对索引或边缘索引) | 返回被引用边缘的 y 坐标。

注意：

- InspectEdgeWidth 的所有公式都符合以下条件：

> - Inspect = InspectEdgeWidth 函数输出的 Inspect 数据结构
> - 卡尺索引 = 0 到 N（卡尺总数等于 InspectedForDefect 函数引用的 InspectEdge 函数输出的卡尺数量）
> - 边缘对索引 = 0 或 1
> - 边索引 = 0 到 N
> - 点索引 = 0 到 1

- 如果“启用位置”参数为 ON，则 InspectEdge 视觉数据访问函数 的附加部分将被插入到与位置错误相关的电子表格中。