3.0 KiB
检测参数与伪彩说明
算法检测参数
以下参数直接传入 SSG_beltTearingParam,由算法负责检测和筛选撕裂结果。
| 配置/TCP字段 | XML属性 | 界面名称 | 单位 | 本程序缺省值 |
|---|---|---|---|---|
tearingMinDepth |
TearingMinDepth |
最小撕裂深度 | mm | 2.0 |
tearingMinYWidth |
TearingMinYWidth |
最小撕裂宽度 | mm | 2.0 |
tearingMaxYWidth |
TearingMaxYWidth |
最大撕裂宽度 | mm | 150.0 |
缺省值参考随算法提供的调用示例;已有XML缺少新属性时使用这些值,不改动原有参数。最小深度和最小宽度必须为有限非负数;最大宽度必须为有限正数且不小于最小宽度。参数页面和TCP写入均校验这些要求,写入后保存到当前配置文件并应用于算法。
算法版本调用 sg_beltTearingVersion() 实时获取,不作为可编辑参数或XML配置保存。参数页面将其与服务端软件版本分别显示;TCP GET_CONFIG / SET_CONFIG 的成功应答通过 config.algorithmVersion 返回算法版本。
相机配置只保留IP地址,配置结构和XML不再保存相机名称。旧XML中的相机名称属性会被忽略,后续保存时移除;服务器列表中的服务器名称不受影响。
1. 报警确认
执行报警复位时,系统清空报警寄存器及TCP历史最大值,并记录当时仍存在的撕裂ID。已确认ID继续显示在实时结果和ROI图像中,但在其消失前不再进入报警输出。相同ID消失后再次出现时可重新报警。
2. 周期伪彩
伪彩不使用固定Z最小值和最大值,也不提供相关配置参数。每50 mm使用一次完整的16位伪彩码范围,下一段重复使用同一颜色表:
0..50 mm -> 0x0000..0xFFFF
50..100 mm -> 0x0000..0xFFFF
100..150 mm -> 0x0000..0xFFFF
换算公式:
rangeStart = floor(z / 50.0) * 50.0
offset = z - rangeStart
code = round(offset / 50.0 * 65535.0)
rgb = pseudoColorLut[code]
pseudoColorLut 使用完整HSV色环,0x0000和0xFFFF颜色连续,方向为红->品红->蓝->青->绿->黄->红。每50 mm重复一次完整色环。生成2D图像时使用三维点的物理X/Y坐标进行等比例正投影,X/Y共用相同的毫米到像素比例;传入的800x600仅作为最大输出边界,实际图像尺寸根据物理X/Y范围动态计算。像素颜色只由对应点的Z值确定;先在扫描线内部插值,再在相邻扫描线之间按实际X/Y坐标插值,使皮带表面形成连续色带。无效点和超过正常采样间距的大缺口不插值,继续显示为黑色。
图像在符合报警过滤条件的撕裂ROI上绘制黑色外框和红色内框。
4. 尺寸口径
- X方向长度:
abs(roi.right - roi.left)。 - Y方向宽度:
abs(tearWidth)。 - Z方向深度:SDK的
tearDepth,过滤时取绝对值,-1按特殊值处理。 - TCP 1.5保留旧字段
max,其值与maxLength相同。