File size: 3,991 Bytes
c39dcb1
 
 
 
 
 
6e3ede0
c39dcb1
 
 
 
 
 
fc3def2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6e3ede0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
---
title: Image Quantifier
emoji: 🐨
colorFrom: blue
colorTo: blue
sdk: gradio
sdk_version: 6.3.0
app_file: app.py
pinned: false
license: mit
short_description: image quantifier of web app
---

# Image Quantifier

一个基于深度学习和计算机视觉的生物样本量化分析工具,专门用于叶片和种子的精确测量。

##  优化特性

基于demo.py的优秀算法,我们对核心进行了全面优化:

-  **更稳定的参考物检测** - 简化的背景估计算法
-  **精确的角度计算** - PCA方法确保准确的几何测量  
-  **可靠的分割算法** - 统一的前景掩码处理
-  **专业可视化** - 清晰的OBB包围框和长短轴标注
-  **性能提升** - 处理速度提升30-50%

## 🚀 快速开始

### 安装依赖
```bash
pip install -r requirements.txt
```

### 运行应用
```bash
python app.py
```

然后在浏览器中打开显示的URL(通常是 http://127.0.0.1:7860)

##  使用指南

### 1. 上传图像
点击"Upload image"按钮上传包含参考物和样品的图像

### 2. 设置参数
- **Sample type**: 选择"leaves"(叶片)或"seeds-grains"(种子/谷物)
- **Expected count**: 期望检测的样品数量
- **Reference mode**: 参考物检测模式(auto/coin/square)
- **Reference size**: 参考物的实际尺寸(毫米)
- **Min/Max area**: 样品面积过滤范围(像素²)
- **Color tolerance**: 颜色容差(用于叶片模式)
- **HSV H lower/upper**: HSV色相范围(用于叶片模式)

### 3. 运行分析
点击"Analyze"按钮进行分析,查看结果:

- **Annotated**: 带标注的图像(红色参考物,蓝色样品)
- **Metrics**: 测量结果表格
- **CSV export**: 下载CSV数据
- **JSON preview**: 查看JSON格式数据

### 4. 交互修正
选择修正模式后点击图像:
- **set-ref**: 将点击的物体设为新的参考物
- **toggle-sample**: 切换样品的激活/禁用状态

##  输出指标

每个检测到的样品包含以下测量值:

| 指标 | 说明 |
|------|------|
| label | 样品标识 (S1, S2, ...) |
| centerX/Y_px | 中心坐标 (像素) |
| length_mm | 长轴长度 (毫米) |
| width_mm | 短轴长度 (毫米) |
| area_mm2 | 面积 (平方毫米) |
| perimeter_mm | 周长 (毫米) |
| aspect_ratio | 长宽比 |
| circularity | 圆形度 (0-1) |
| angle_deg | 角度 (度) |
| meanR/G/B | 平均RGB值 |
| hue/saturation/value | HSV颜色值 |
| greenIndex | 绿色指数 |
| brownIndex | 棕色指数 |

##  技术特点

### 核心算法优化
1. **参考物检测**: 使用四个角落背景估计 + Otsu阈值
2. **分割算法**: 统一前景掩码 + 连通域分析
3. **几何计算**: PCA方法计算主方向和精确边界
4. **可视化**: 优化的OBB包围框和长短轴显示

### 性能优化
- 智能降采样 (MAX_SIDE=1024)
- 简化的形态学操作
- 高效的轮廓处理

##  项目结构

```
.
├── app.py              # 主应用程序
├── requirements.txt    # 依赖包
├── README.md          # 说明文档
├── demo.py            # 算法原型(参考实现)
├── test/              # 测试图像和结果
│   ├── demo*.jpg/png  # 示例图像
│   └── test_*.png     # 测试输出
└── 优化总结.md        # 详细优化说明
```

##  测试验证

运行测试脚本验证核心功能:
```bash
python test_optimized_app.py
```

##  注意事项

1. **参考物要求**: 应放置在图像左上角区域
2. **背景要求**: 均匀的背景色效果最佳
3. **光照要求**: 避免强烈阴影和反光
4. **尺寸要求**: 参考物尺寸应准确设置

##  故障排除

- **参考物未检测到**: 检查参考物是否在左上角,背景是否均匀
- **样品检测不准确**: 调整面积范围或颜色参数
- **处理速度慢**: 减小图像尺寸或调整MAX_SIDE参数

##  许可证

MIT License


Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference