2.1 KiB
2.1 KiB
需求分析:修复头部 STL 导出后仍呈散点
开始时间:2026-05-20-02-55-11
原始需求摘要
用户反馈在 ITK-SNAP 中打开导出的 head-ct-demo-segmentation-label.nii 后,“头部”类别仍呈散点形式;用户指出 STL 本体不是散点,头部 STL 在三维查看器中是完整实体表面,因此导出的分割影像也不应呈点云。
业务目标
- 分割影像导出必须基于真实 STL 网格生成实体 Label Map。
- 大面数构件(尤其
头部.stl、头颅.stl)不能因预览抽样导致闭合轮廓断裂。 - ITK-SNAP 中轴向、冠状、矢状视图应显示连续实体分割,而不是稀疏点云。
输入与输出
- 输入:
- 默认项目
head-ct-demo。 - DICOM 原始序列。
Head_CT_ReConstruct/头部.stl等二进制 STL。- 当前模型位姿、构件显隐与导出范围。
- 默认项目
- 输出:
- 修复后的分割 NIfTI / NIfTI.GZ / 导出包。
- 工程分析文档与经验记录。
影响范围
- 后端
WebSite/server.ts中 STL 到 NIfTI Label Map 的生成逻辑。 - 导出接口:
/api/projects/:projectId/export-mask/api/projects/:projectId/export-nifti/api/projects/:projectId/export-bundle
- 前端下载入口原则上不需要改变,除非发现参数传递问题。
关键约束
- 保持 DICOM 维度、spacing、slice 数量与当前导出逻辑一致。
- 保持 labels JSON、位姿 JSON、压缩包结构兼容。
- 不将大型 DICOM/STL 数据或运行态导出文件纳入 Git 提交。
- 最终仍需重新部署并验证服务。
风险点
- 完整 STL 面数较大,不能把所有顶点长期存为大型 JS 数组造成内存膨胀。
- 需要避免继续复用预览抽样数据做医学导出。
- 若 STL 存在非闭合切口,仅靠扫描线偶奇填充可能仍出现孔洞,需要补充连通域填补。
默认假设
- 用户希望本次直接修复导出的 NIfTI 分割质量,而不是只解释原因。
- 头部散点的主要原因是后端导出使用了预览抽样网格,导致实体轮廓无法闭合。