refactor: 项目目录结构重组

- 中文目录名改为英文:cDNA图像处理实例→examples,参考资料→references
- web→app(Flask应用标准命名)
- 输出目录平移到 data/output/simple/ 和 data/output/full/
- 输入图像统一到 data/input/
- 构建脚本移到 scripts/
- 源码文件改用 snake_case 命名
- 更新所有文件路径引用和文档
This commit is contained in:
2026-07-16 20:59:58 +08:00
parent a720845948
commit 3ca079a980
100 changed files with 98 additions and 71 deletions
+22 -12
View File
@@ -8,30 +8,37 @@
```
src/
├── cDNA_segmentation.py ← 原版:完整处理流程
└── cDNA_gridding_simple.py ← 简化版:仅划线,用于课堂讲解 ★
├── segmentation.py ← 原版:完整处理流程
└── gridding_simple.py ← 简化版:仅划线,用于课堂讲解 ★
results/ ← 原版输出(6张图)
results_simple/ ← 简化版输出(1张图)
app/ ← Flask Web应用
scripts/ ← 构建脚本
data/
├── input/ ← 输入图像
└── output/
├── simple/ ← 简化版输出(6张图)
└── full/ ← 原版输出(6张图)
cDNA图像处理实例/数据/cDNA/ ← 输入图像 + MATLAB示例
参考资料/NewGridAndCV/ ← MATLAB参考实现
examples/数据/cDNA/ ← 课程原始数据 + MATLAB示例
references/matlab/ ← MATLAB参考实现
references/papers/ ← 论文PDF
```
## 两个Python实现
### 简化版 (`cDNA_gridding_simple.py`) — 课堂主讲
### 简化版 (`src/gridding_simple.py`) — 课堂主讲
- 算法:投影求和 → (max-min)×10%阈值 → 过零点配对 → 划线
-150行,带详细中文注释,适合课堂讲解
- 输出:`results_simple/gridding_simple.png`
-370行,带详细中文注释,适合课堂讲解
- 输出:`data/output/simple/` 下 6 张图
- **与原版网格线位置完全一致(误差0像素)**
### 原版 (`cDNA_segmentation.py`) — 完整实现
### 原版 (`src/segmentation.py`) — 完整实现
- 网格划分:自相关+白顶帽+Otsu+质心(参照MATLAB `GriddingAndCV.m`
- 三种阈值分割:人工阈值、Otsu、迭代阈值
- TV去噪(Chambolle投影算法,参照 `tvdenoise.m`
- 输出:`data/output/full/` 下 6 张图
## 算法要点
@@ -44,6 +51,7 @@ cDNA图像处理实例/数据/cDNA/ ← 输入图像 + MATLAB示例
- `cDNA.png`820×820 RGB23×23斑点阵列,Cy3/Cy5双色荧光
- 斑点间距约35px,每斑点约18px宽
- 输入路径:`data/input/cDNA.png`
## 编码规范
@@ -52,8 +60,10 @@ cDNA图像处理实例/数据/cDNA/ ← 输入图像 + MATLAB示例
## 运行环境
Python`D:\ProgramData\anaconda3\envs\my_env`
依赖:numpy, scipy, scikit-image, matplotlib, Pillow
Python虚拟环境:项目根目录 `.venv/`uv 创建,Python 3.13
依赖:numpy, scipy, scikit-image, matplotlib, Pillow, flask
安装:`uv pip install numpy scipy scikit-image matplotlib Pillow flask --python .venv/Scripts/python.exe`
## 仓库