feat(example): 添加人脸注册按钮和ID显示功能

- 添加注册按钮,点击生成随机人脸ID(格式:F + 8位数字)
- 实时显示检测到的人脸对应的ID
- 使用彩色标签区分已注册(绿色)和未注册(橙色)状态

Quick task: 260330-ld1
This commit is contained in:
2026-03-30 15:28:31 +08:00
parent 3c2bb02e33
commit 184c3a9f16
9 changed files with 1099 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
# Quick Task 260330-ld1: Example App 人脸注册功能
## Task Description
在example的人脸识别预览页面增加一个注册按钮id使用随机数。同时预览页面应该显示检测到的人脸对应的id。
## Files to Modify
- `example/lib/main.dart` - 添加注册按钮和人脸ID显示
## Tasks
### Task 1: 添加人脸ID存储和随机生成逻辑
- **file**: `example/lib/main.dart`
- **action**: 添加 `Map<int, String>` 存储人脸ID映射添加随机ID生成函数
- **verify**: 编译通过
### Task 2: 添加注册按钮和ID显示UI
- **file**: `example/lib/main.dart`
- **action**: 在底部信息区域添加注册按钮显示检测到的人脸ID列表
- **verify**: UI 正确显示,按钮可点击
### Task 3: 实现注册功能
- **file**: `example/lib/main.dart`
- **action**: 点击注册按钮为当前检测到的人脸生成随机ID并存储更新UI显示
- **verify**: 注册后显示随机生成的ID
---
*Plan created: 2026-03-30*

View File

@@ -0,0 +1,32 @@
# Quick Task 260330-ld1: Summary
## Task
在example的人脸识别预览页面增加一个注册按钮id使用随机数。同时预览页面应该显示检测到的人脸对应的id。
## Changes Made
### `example/lib/main.dart`
1. **添加导入**: `dart:math` 用于生成随机ID
2. **添加状态变量**:
- `_faceIdMap`: 存储人脸特征到ID的映射
- `_currentFaceIds`: 当前帧检测到的人脸ID列表
- `_random`: 随机数生成器
3. **添加方法**:
- `_generateRandomFaceId()`: 生成格式为 `F + 8位随机数字` 的人脸ID
- `_getFaceKey()`: 根据人脸矩形区域生成特征标识
4. **更新检测逻辑**: 在检测到人脸时更新 `_currentFaceIds` 列表
5. **更新UI**:
- 添加人脸ID显示区域使用彩色标签区分已注册/未注册状态)
- 添加注册按钮点击为未注册人脸生成随机ID
## How It Works
1. 摄像头实时检测人脸
2. 检测到的人脸初始显示为"未注册"(橙色标签)
3. 用户点击"注册人脸"按钮
4. 为所有未注册的人脸生成随机ID绿色标签显示
## Verification
- `flutter analyze lib/main.dart` - No issues found
---
*Completed: 2026-03-30*