# 实现方案

开始时间：2026-05-18-17-40-02

## 总体架构

- `backend/`：Python FastAPI 服务，负责文件上传、帧抽取、导丝分割、结果落盘和静态文件服务。
- `frontend/`：单页 Web 操作台，使用原生 HTML/CSS/JS，避免额外前端构建依赖。
- `storage/`：运行时存放上传文件、处理帧、掩膜、叠加图和输出视频。
- `scripts/`：生成演示视频、启动服务和测试辅助脚本。
- `tests/`：算法与 API 的基础回归测试。

## 分割方法

1. `hessian_ridge`
   - 对灰度图做 CLAHE 增强。
   - 使用 `skimage.filters.frangi` 进行多尺度细线/管状结构增强。
   - 自适应阈值与形态学清理后输出掩膜。

2. `edge_morphology`
   - 对反相增强图执行黑帽/顶帽和 Canny 边缘提取。
   - 结合细长形态学核连接断裂线段。
   - 用连通域面积过滤去除噪声。

3. `temporal_difference`
   - 视频场景下利用相邻帧差分提取移动细线候选。
   - 与 `hessian_ridge` 的结构响应相交/相并，降低静态骨骼假阳性。
   - 图片场景无前一帧时自动退化为 `hessian_ridge`。

4. `fusion`
   - 将 Hessian、边缘形态学、时序差分结果按权重融合。
   - 提供更稳定的第一版默认结果。

5. `compare`
   - 对同一批帧运行多种方法，前端以矩阵方式对比。

## Web 交互

- 上传图片区和算法参数面板置于首屏，面向工程调试而非营销页。
- 结果区显示原帧、叠加图、掩膜覆盖率、细线骨架长度等指标。
- 提供输出视频与单帧结果链接。
- 页面风格采用冷静的医学影像工作台：深色背景、清晰边界、克制高亮。

## 部署方式

- 使用 Python 虚拟环境安装依赖。
- `scripts/run_dev.sh` 启动 FastAPI，默认监听 `0.0.0.0:8000`。
- FastAPI 直接服务前端静态文件，访问 `http://127.0.0.1:8000`。

## 后续扩展路径

- 增加 PyTorch/ONNX 模型适配器，接入训练好的 U-Net/FRA-Net/MSLNet 类模型。
- 接入 CathAction 或自有标注数据训练流程。
- 增加人工修正、导丝中心线导出、端点定位和时序跟踪。
