47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# 检测参数与伪彩说明
|
||
|
||
## 1. 报警过滤参数
|
||
|
||
| 配置字段 | XML属性 | 单位 | 规则 |
|
||
|----------|---------|------|------|
|
||
| `tearingMinWidthY` | `TearingMinWidthY` | mm | `abs(tearWidth)` 小于该值时不报警,0表示不限制 |
|
||
| `tearingMinDepthZ` | `TearingMinDepthZ` | mm | `abs(tearDepth)` 小于该值时不报警,0表示不限制 |
|
||
|
||
SDK返回 `tearDepth == -1` 表示贯穿型或无可用深度,该结果始终通过Z深度门槛。过滤在SDK检测后、所有报警协议输出前执行,因此 TCP、标准Modbus和简化Modbus使用一致的报警集合。
|
||
|
||
参数可通过配置界面、XML配置文件或TCP 1.6 `GET_CONFIG` / `SET_CONFIG` 读取和修改。修改后写回当前配置文件;相机 IP 修改后需重启服务或使用完整的相机重连流程才能应用,`REST_DETECT` 只重新启动检测流。
|
||
|
||
## 2. 报警确认
|
||
|
||
执行报警复位时,系统清空报警寄存器及TCP历史最大值,并记录当时仍存在的撕裂ID。已确认ID继续显示在实时结果和ROI图像中,但在其消失前不再进入报警输出。相同ID消失后再次出现时可重新报警。
|
||
|
||
## 3. 周期伪彩
|
||
|
||
伪彩不使用固定Z最小值和最大值,也不提供相关配置参数。每50 mm使用一次完整的16位伪彩码范围,下一段重复使用同一颜色表:
|
||
|
||
```text
|
||
0..50 mm -> 0x0000..0xFFFF
|
||
50..100 mm -> 0x0000..0xFFFF
|
||
100..150 mm -> 0x0000..0xFFFF
|
||
```
|
||
|
||
换算公式:
|
||
|
||
```text
|
||
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` 相同。
|