# 经验记录

本文件用于记录每次执行中出现的关键问题和解决方案。

## 2026-05-18-17-40-02 Web 导丝分割系统第一版

### 1. pytest 无法导入本地 backend 包

A. 具体问题：执行 `pytest -q` 时，`tests/test_api.py` 和 `tests/test_segmentation.py` 报 `ModuleNotFoundError: No module named 'backend'`。

B. 产生问题原因：项目是从空目录新建，尚未安装为 Python 包；pytest 启动时没有稳定地把项目根目录放入 `pythonpath`。

C. 解决问题方案：新增 `pytest.ini`，配置 `pythonpath = .` 和 `testpaths = tests`。

D. 后续如何避免问题：从零构建 Python 项目时同步添加 pytest 配置，或使用标准包管理配置声明测试路径。

### 2. scikit-image 0.26 参数变更警告

A. 具体问题：`remove_small_objects` 使用 `min_size` 时测试出现 FutureWarning。

B. 产生问题原因：当前环境的 scikit-image 版本将 `min_size` 标记为废弃参数，并引入 `max_size` 表达“移除小于等于该面积的对象”。

C. 解决问题方案：将 `remove_small_objects(binary, min_size=...)` 改为 `remove_small_objects(binary, max_size=...)`。

D. 后续如何避免问题：固定依赖版本后仍要关注测试警告；图像处理库升级时优先查看函数签名和文档。

### 3. 融合模式首帧过分割

A. 具体问题：视频第 0 帧没有前帧，融合模式覆盖率一度达到约 22%，明显偏宽。

B. 产生问题原因：时序差分在无前帧时退化为 Hessian，融合投票逻辑对无前帧使用了一票通过，导致边缘形态学噪声被并入。

C. 解决问题方案：融合模式统一使用两票通过，低响应时才回退到一票；同时将边缘形态学改成暗线候选约束下的边缘检测。

D. 后续如何避免问题：视频算法要单独检查首帧、丢帧和单图退化路径；融合策略必须记录每个子方法的置信约束。
