缺陷检测
边缘对趋势
沿水平中线逐列量取上下两条暗边缘的像素间距,以滑动窗口均值构造趋势线,把偏差超阈值的采样列标为缺陷并叠加红圈,输出距离、趋势线、偏差与极值EdgePairTrend · v1.0 · by system
输入参数 4
| 名称 | keyId | 类型 | 默认值 | 可连接 | 说明 |
|---|---|---|---|---|---|
| 图像 | images | vec_img | [] | 是 | 逐帧参与量测的灰度图像序列,每帧先转成 8 位灰度;空帧或无法转灰度的帧原样透传且不参与采样,整个图像容器缺失时返回 -1 并在运行信息提示输入图像为空 |
| 扫描线数 | scanCount | int | 20 | 否 | 每帧参与采样的列数上限,默认 20;程序以图像宽度除以该值得到列步进,从左到右取到该列数为止,取 0 或负数会返回 -1 并在运行信息提示扫描线数必须大于0,过大取值内部限制到 100000 |
| 平滑窗口 | trendWindow | int | 5 | 否 | 构造趋势线时各采样点取邻域做平均的窗口宽度,默认 5;以该值的一半向左右各取若干采样点求算术平均,取值小于 1 时按 1 处理,窗口越宽趋势线越平滑 |
| 偏差阈值 | deviationThreshold | double | 3 | 否 | 判定采样列是否为缺陷的偏差门限,默认 3 个像素;某列量测值与趋势线之差的绝对值严格大于该值时,在输出图像上叠加红色圆圈,只影响标记显示而不改变返回码 |
输出参数 10
| 名称 | keyId | 类型 | 默认值 | 可连接 | 说明 |
|---|---|---|---|---|---|
| 运行结果 | resultCode | int | — | 否 | 0=成功完成边缘序列量测与趋势分析并输出各统计序列;-1=输入图像容器缺失、扫描线数非正或处理过程中发生异常,此时运行信息写明具体原因 |
| 运行信息 | resultInfo | string | — | 否 | 成功时固定为 Success;失败时给出具体原因,如输入图像为空、扫描线数必须大于0、OpenCV 处理异常或内存不足;边缘序列为空或偏短不属于失败,仍返回成功 |
| 图像 | images | vec_img | — | 否 | 逐帧输出的 BGR 彩色图像,帧数与输入一致;每个有效采样列在图像水平中线处画绿色实心圆点,偏差超阈值的列再叠加红色圆圈,空帧或转灰度失败的帧原样透传 |
| 缺陷数 | defectCount | int | — | 否 | 被判为缺陷的采样列个数,判定依据是某列量测值与滑动窗口趋势线之差的绝对值严格大于偏差阈值;输出图像上对应位置叠加红圈,供下游按数量做统计 |
| 缺陷列表 | defectList | vec_double | — | 否 | 以数值序列形式给出的缺陷明细,与缺陷数配套,逐条对应偏差超过阈值的采样列;元素顺序与从左到右的采样顺序一致,便于把缺陷回连到具体扫描列 |
| 距离 | distances | vec_double | — | 否 | 按列从左到右、多帧依次拼接的边缘对距离序列,元素为每列上下两条暗边缘行坐标之差,量纲为像素;搜索范围内未同时检出两条边缘的列被跳过,整体无有效边缘对时序列为空 |
| 趋势线 | trendLine | vec_double | — | 否 | 与各量测序列等长的趋势线,由每个采样点邻域内量测值的算术平均得到,量纲为像素;它是局部滑动均值而非带斜率的直线拟合,不含直线斜率项 |
| 偏差 | deviation | vec_double | — | 否 | 各采样点量测值与同位置趋势线之差的绝对值序列,量纲为像素;它反映单点相对局部均值的波动,不是对直线做拟合得到的残差,可用于与偏差阈值比较 |
| 最小距离 | minDist | double | — | 否 | 所有帧全部有效边缘对距离中的最小值,量纲为像素;由逐点比较更新,若一帧都未检出有效边缘对则保持初始的大数 1e9,可据此判断是否取到过有效量测 |
| 最大距离 | maxDist | double | — | 否 | 所有帧全部有效边缘对距离中的最大值,量纲为像素;由逐点比较更新,没有任何有效边缘对时保持初始值 0;与最小距离一起给出边缘对间距的波动范围 |
接入方式
联系与反馈
获取安装包与技术反馈
安装包通过微信二维码获取。安装部署、界面组态与工具配置过程中的问题,可通过同一渠道反馈,无需注册或填写表单。
- 安装包获取与部署说明
- 界面组态与工具配置
- 功能建议与问题反馈

微信扫码 · 安装包与问题反馈