refactor: 项目目录结构重组
- 中文目录名改为英文:cDNA图像处理实例→examples,参考资料→references - web→app(Flask应用标准命名) - 输出目录平移到 data/output/simple/ 和 data/output/full/ - 输入图像统一到 data/input/ - 构建脚本移到 scripts/ - 源码文件改用 snake_case 命名 - 更新所有文件路径引用和文档
This commit is contained in:
@@ -15,28 +15,38 @@
|
||||
```
|
||||
cDNA微阵列图像处理作业/
|
||||
├── src/
|
||||
│ ├── cDNA_segmentation.py # 原版:网格划分 + 三种阈值分割 + TV去噪
|
||||
│ └── cDNA_gridding_simple.py # 简化版:仅网格划分,用于课堂讲解
|
||||
│ ├── segmentation.py # 原版:网格划分 + 三种阈值分割 + TV去噪
|
||||
│ └── gridding_simple.py # 简化版:仅网格划分,用于课堂讲解
|
||||
│
|
||||
├── web/ # Flask Web 应用
|
||||
│ ├── app.py # Flask 主程序
|
||||
│ ├── launcher.py # PyInstaller 打包入口
|
||||
│ ├── templates/index.html # 前端页面
|
||||
│ └── static/style.css # 样式文件
|
||||
├── app/ # Flask Web 应用
|
||||
│ ├── main.py # Flask 主程序
|
||||
│ ├── launcher.py # PyInstaller 打包入口
|
||||
│ ├── templates/index.html # 前端页面
|
||||
│ └── static/style.css # 样式文件
|
||||
│
|
||||
├── build_exe.py # PyInstaller 打包脚本
|
||||
├── cDNA_Analyzer.spec # PyInstaller spec 配置
|
||||
├── flowchart.drawio # 算法流程图(用 Draw.io 打开)
|
||||
├── scripts/
|
||||
│ └── build.py # PyInstaller 打包脚本
|
||||
│
|
||||
├── data/
|
||||
│ ├── input/ # 输入图像
|
||||
│ │ └── cDNA.png
|
||||
│ └── output/ # 生成结果
|
||||
│ ├── simple/ # 简化版输出(6张图)
|
||||
│ └── full/ # 原版输出(6张图)
|
||||
│
|
||||
├── examples/ # 课程示例数据(含 pptx + MATLAB demo)
|
||||
├── references/ # 参考资料
|
||||
│ ├── papers/ # 论文 PDF
|
||||
│ └── matlab/ # MATLAB 参考代码(NewGridAndCV)
|
||||
│
|
||||
├── results/ # 原版输出图像(6张)
|
||||
├── results_simple/ # 简化版输出图像(6张)
|
||||
├── docs/ # 技术文档
|
||||
│ ├── cDNA 微阵列网格划分.md # 算法详解
|
||||
│ ├── 两版差异说明.md # 简化版 vs 原版对比
|
||||
│ └── 依赖库清单.md # Python 依赖
|
||||
│ ├── cDNA 微阵列网格划分.md
|
||||
│ ├── 两版差异说明.md
|
||||
│ └── 依赖库清单.md
|
||||
│
|
||||
├── cDNA图像处理实例/ # 课程示例数据
|
||||
└── 参考资料/ # MATLAB 参考代码 + 论文 PDF
|
||||
├── flowchart.drawio # 算法流程图
|
||||
├── README.md
|
||||
└── CLAUDE.md
|
||||
```
|
||||
|
||||
---
|
||||
@@ -50,28 +60,33 @@ cDNA微阵列图像处理作业/
|
||||
### 方式二:Web 开发模式
|
||||
|
||||
```bash
|
||||
cd web
|
||||
python app.py
|
||||
# 首次使用需创建虚拟环境
|
||||
uv venv .venv --python <你的Python路径>
|
||||
uv pip install numpy scipy scikit-image matplotlib Pillow flask --python .venv/Scripts/python.exe
|
||||
|
||||
# 启动
|
||||
cd app
|
||||
python main.py
|
||||
# 浏览器自动打开 http://localhost:5000
|
||||
```
|
||||
|
||||
### 方式三:命令行脚本
|
||||
|
||||
```bash
|
||||
# 简化版(课堂主讲,约150行)
|
||||
python src/cDNA_gridding_simple.py
|
||||
# 输出:results_simple/ 下 6 张图
|
||||
# 简化版(课堂主讲,约370行)
|
||||
python src/gridding_simple.py
|
||||
# 输出:data/output/simple/ 下 6 张图
|
||||
|
||||
# 原版(完整实现,430行)
|
||||
python src/cDNA_segmentation.py
|
||||
# 输出:results/ 下 6 张图
|
||||
# 原版(完整实现,约470行)
|
||||
python src/segmentation.py
|
||||
# 输出:data/output/full/ 下 6 张图
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 两种 Python 实现
|
||||
|
||||
### 简化版 `cDNA_gridding_simple.py`(课堂主讲)
|
||||
### 简化版 `src/gridding_simple.py`(课堂主讲)
|
||||
|
||||
**算法思路**(初中学历即可理解):
|
||||
|
||||
@@ -85,12 +100,12 @@ python src/cDNA_segmentation.py
|
||||
|
||||
**特点**:
|
||||
|
||||
- 约 150 行代码,带详细中文注释
|
||||
- 约 370 行代码,带详细中文注释
|
||||
- 核心逻辑仅 30 行
|
||||
- 与原版网格线位置误差为 **0 像素**
|
||||
- 完全自动化,无需人工设定参数
|
||||
|
||||
### 原版 `cDNA_segmentation.py`(完整实现)
|
||||
### 原版 `src/segmentation.py`(完整实现)
|
||||
|
||||
| 模块 | 算法 | 参照 |
|
||||
|------|------|------|
|
||||
@@ -128,7 +143,7 @@ python src/cDNA_segmentation.py
|
||||
使用 PyInstaller 将 Web 应用打包为单个 exe 文件:
|
||||
|
||||
```bash
|
||||
python build_exe.py
|
||||
python scripts/build.py
|
||||
# 输出:dist/cDNA_Analyzer.exe(约 68MB)
|
||||
```
|
||||
|
||||
@@ -138,7 +153,7 @@ python build_exe.py
|
||||
|
||||
## 运行环境
|
||||
|
||||
- **Python**: `D:\ProgramData\anaconda3\envs\my_env`
|
||||
- **Python**: 3.13(uv 虚拟环境 `.venv/`)
|
||||
- **依赖**: numpy, scipy, scikit-image, matplotlib, Pillow, Flask
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user