# FindBlobs

FindBlobs 用于通过一组加权的理想值对斑点结构中的斑点进行筛选和评分。

## FindBlobs 概述

使用 FindBlobs 参数设置，创建一个公式，该公式计算一个分数，用于衡量斑点数据结构中引用的斑点与“理想”斑点的匹配程度。根据参数的设置，FindBlobs 仅返回符合指定要求的斑点。

引用的斑点数据结构中的每个斑点都经过两步分析过程：首先，每个单独的 FindBlobs 参数设置都会创建一个计算该特定参数值的公式。譬如，角度值会通过除以 Range 以及 Angle 参数的 Angle 的差异值、Range 以及引用的斑点角度值，乘以 Weight 值来计算。在计算每个单独参数的数值后，这些参数的数值会被相加并除以 Weight 参数数值的总和。该参数之后会被用来与 Accept Thresh 的值相比较来确定斑点是否符合指定的标准。

一旦 FindBlobs 对提取的斑点进行筛选和排序，新的斑点数据结构和随附的结果表将自动插入到电子表格中。该结果列表将根据找到的斑点与配置要求的匹配程度按照最接近到最不接近的顺序排列。

FindBlobs 对于缺陷检测特征分类非常有用。例如，如果作业是关于检测表面划痕的，FindBlobs 可以被配置成返回那些高于 Elongation 值的斑点。或者，如果目标是要检测锯齿状的边缘缺陷，FindBlobs 可以被配置成返回那些含有较高周长或扩散值的斑点。

## FindBlobs 输入

参数 | 说明
斑点 | 此参数使用对要筛选和排序的斑点数据结构的单元格引用。
要查找的数量 | 该参数指定了最多返回的斑点数目 (1 至 4096; 默认 = 3)。如果图像中超过Accept Thresh 设置数值的斑点超过了指定返回斑点的数目，则含有较高数值的斑点会被返回。 注意： 如果要查找的数量参数的值大于零，FindBlobs 将自动插入一个结果表，其中最多包含 10 个条目，这些条目对应于斑点数据结构中的前 10 个斑点。如果需要显示所有项目，您可以通过复制最后行并在之后粘贴多余的行来扩充列表；递增任何新粘贴行的索引以确保斑点被正常索引。
合格阈值 | 指定可接受的最小匹配值（0 至 100; 默认 = 10）。FindBlobs 仅返回那些匹配值超过合格阈值的斑点。匹配值将根据以下的公式计算： (角度值 + 区域值 + 延伸率值 + 孔值 + 周长值 + 扩散值) * (100/参数的权重值总合)
角度 | 此参数用于配置识别找到的斑点的理想角度分数（+/- CCW 度）的评分公式。 角度值计算公式 FindBlobs 角度值将根据以下公式计算： 角度值 = [(范围 + 角度) - BlobAngleVal]/范围 * WeightVal BlobAngleVal = 引用的斑点的输出角度值 WeightVal = 权重/（所有权重总和） * 100
角度 | 理想的斑点角度 (-360 至 360； 默认 = 0)。
范围 | 斑点的角度公差，相似性得分（0 至 360； 默认 = 0）。
权重 | 斑点角度的重要性，相似性得分（0 至 100；默认 = 0）。
面积 | 该参数被用来设定识别找到的斑点理想“面积”值的评分公式。 区域值计算公式 根据 BlobAreaVal 以及面积值，FindBlobs 的“面积”值将通过以下公式计算: 如果 BlobAreaVal 的值大于面积值，则使用该公式： 区域值 = [(范围 + 面积) - BlobAreaVal]/范围 * WeightVal 如果 BlobAreaVal 的值小于面积 值，则使用该公式： 区域值 = [BlobAreaVal - (面积 - 范围)]/范围 * Weight Val BlobAreaVal = 被引用斑点的输出 Area 值 WeightVal = 权重/（所有权重总和）* 100
面积 | 理想的斑点面积大小，以像素为单位（0 至 900000； 默认 = 1000）。
范围 | 斑点区域公差，相似性得分（0 至 900000； 默认 = 20000）。
权重 | 斑点区域的重要性，相似性得分（0 至 100；默认 = 50）。
拉伸值 | 该参数被用来设定识别找到的斑点理想“拉伸”值的计分公式。 拉伸值计算公式 FindBlobs “拉伸”值将根据以下公式计算： 拉伸值 = [(范围 + 拉伸) - BlobElongationVal]/范围 * WeightVal BlobElongationVal = 被引用斑点的输出“拉伸”值 WeightVal = 权重/(所有权重总合) * 100
拉伸值 | 理想斑点的拉伸值(0 至 900000；默认 = 1)。
范围 | 斑点拉伸公差，相似性得分（0 至 900000；默认 = 2）。
权重 | 斑点拉伸值的重要性，相似性得分(0 至 100；默认 = 50)。
孔 | 该参数被用来设定识别找到的斑点理想“孔”值的计分公式。 孔值计算公式 FindBlobs “孔”值将根据以下公式计算： 孔分数 = [(范围 + 数量) - BlobHolesVal]/范围 * WeightVal BlobHolesVal = 被引用斑点的输出孔值 WeightVal = 权重/(所有权重总合) * 100
数量 | 理想斑点的孔的数量（0 至 10000；默认 = 0）。
范围 | 斑点孔的数目公差，相似性得分（0 至 10000；默认 = 2）。
权重 | 斑点孔的数目计数，相似性得分 (0 至 100；默认= 0)。
周长 | 此参数用于配置识别找到的斑点的理想周长分数的评分公式。 周长计算公式 FindBlobs 的“周长”值将根据以下公式计算： 周长值 = [(范围 + 周长) - BlobPerimeterVal]/范围 * WeightVal BlobPerimeterVal = 被引用斑点的周长值 WeightVal = 权重/(所有权重总合) * 100
周长 | 理想斑点的周长 (0 至 100000；默认 = 1000)。
范围 | 斑点周长公差，相似性得分（0 至 100000；默认 = 10000）。
权重 | 斑点周长的重要性，相似性得分 (0 至 100；默认 = 50)。
扩散 | 该参数被用来设定识别找到的斑点理想“扩散”值的计分公式。 扩散值计算公式 FindBlobs 扩散值将根据以下公式计算： 展开分数 = [(范围 + 扩散) - 斑点扩散Val]/范围 * WeightVal BlobSpreadVal = 被引用斑点的输出扩散值 WeightVal = 权重/(所有权重总合) * 100
扩散 | 理想的斑点扩散值 (0 至 900000；默认 = 1)。
范围 | 斑点展开值公差，相似性得分 (0 至 900000；默认 = 2)。
权重 | 斑点扩散值的重要性，相似性得分T (0 至 100；默认 = 50)。
显示 | 指定 FindBlobs 在图像上的图形叠加显示模式。
0 = 隐藏所有（默认） | 隐藏所有图形，除了在电子表格中高亮显示的含有 FindBlobs 函数的单元格。
1 = 仅结果图形 | 斑点轮廓在任何时候都会显示。

## FindBlobs 输出

返回 | 包含按分数排序的匹配斑点的斑点数据结构，如果任何输入参数无效，则为 #ERR。
结果 | 最初将 FindBlobs 插入单元格时，系统会使用以下斑点视觉数据访问函数在电子表格中创建结果表。 注意： 如果要查找的数量参数的值大于零，FindBlobs 将自动插入一个结果表，其中最多包含 10 个条目，这些条目对应于斑点数据结构中的前 10 个斑点。如果需要显示所有项目，您可以通过复制最后行并在之后粘贴多余的行来扩充列表；递增任何新粘贴行的索引以确保斑点被正常索引。 可以使用斑点视觉数据访问函数访问其他数据元素。
电子表格标签 | 函数 | 说明
--- | --- | ---
索引 |  | 斑点的索引位置。
X | GetX(斑点, 斑点索引) | 返回引用的斑点的质心的 x 坐标。
Y | GetY(斑点, 斑点索引) | 返回引用的斑点的质心的 y 坐标。
角度 | GetAngle(Blobs, Blob Index) | 返回所引用的斑点中心相对于 ROI 中心的角度。
颜色 | GetColor(斑点, 斑点索引) | 返回所引用斑点的色彩值 (0 = 黑色, 1 = 白色)。
分数 | GetScore(斑点, 斑点索引) | 衡量斑点与 FindBlobs 函数所指定标准的匹配程度。
面积 | GetArea(斑点, 斑点索引) | 返回所引用斑点的面积（以像素为单位测量）。 注意： 如果斑点中有孔，则面积值将根据填充孔复选框是启用还是禁用而有所不同。
拉伸值 | GetElongation(斑点, 斑点索引) | 返回一个代表所引用斑点像素从斑点质点拉伸程度的值。例如，圆的拉伸值为 0， 而钉子可能会含有较高的拉伸值。
孔 | GetHoles(斑点, 斑点索引) | 返回在所引用斑点中含有的孔的数目。
周长 | GetPerimeter(斑点, 斑点索引) | 返回所引用斑点边界的长度；该周长将根据计算斑点边界外沿的像素而得出。
扩散 | GetSpread(斑点, 斑点索引) | 返回一个代表所引用斑点像素从斑点中心（质点）分布的值。例如，圆形物体的扩散值会比一个椭圆形物体的值小。