2026-05-08-01-53-07 修正DICOM范围和切割Mask预览

This commit is contained in:
2026-05-08 01:59:36 +08:00
parent 4ba85eba6e
commit 22b0a93654
7 changed files with 348 additions and 29 deletions

View File

@@ -703,3 +703,21 @@ C. 解决问题方案
D. 后续如何避免问题
涉及 DICOM 与 STL 配准的旋转、缩放、切割操作,应优先明确坐标系和 pivot 来源,默认以 DICOM 体中心为基准;高频切片请求应先设计缓存键和预取策略,避免 UI 操作直接触发重复网络与纹理构建。
## 2026-05-08-01-53-07 DICOM 范围变化不改变空间基准
A. 具体问题
DICOM 切片范围变化后,融合视图中的 DICOM 体深度和帧分布会随范围重新计算,导致模型看起来被自动居中或改变了和 DICOM 的原始配准位置;切分开启后也缺少在 DICOM 帧上直观看到 Mask 的反馈。
B. 产生问题原因
后端 `dicom-fusion-volume` 使用当前 `start/end` 的范围长度计算 `physicalSize.depth`;前端又把当前返回的帧均匀铺满整个 DICOM box而不是按原始 DICOM index 放回完整序列位置。
C. 解决问题方案
后端 physical depth 改为完整序列深度;前端 DICOM slice plane 的 Z 位置改用 `volume.indices[index] / (total - 1)` 映射到完整 DICOM box切片范围改为 `sliceStart/sliceEnd` 双端点,默认最高切片;切割开启时额外渲染切割帧 DICOM texture并叠加橙色 Mask 轮廓。
D. 后续如何避免问题
所有配准相关可视化都必须区分“显示范围”和“空间基准”:显示范围可以变化,但 DICOM 物理尺寸、模型缩放基准和坐标原点不能跟着变化;任何切割或 Mask 预览都要明确只是辅助显示,不能修改原始 DICOM/STL 位姿。