GrabBag/App/BeltTearing/Doc/检测参数与伪彩说明.md

3.0 KiB
Raw Blame History

检测参数与伪彩说明

算法检测参数

以下参数直接传入 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 相同。