feat(example): 添加人脸注册按钮和ID显示功能
- 添加注册按钮,点击生成随机人脸ID(格式:F + 8位数字) - 实时显示检测到的人脸对应的ID - 使用彩色标签区分已注册(绿色)和未注册(橙色)状态 Quick task: 260330-ld1
This commit is contained in:
27
.planning/quick/260330-ld1-example-id-id/260330-ld1-PLAN.md
Normal file
27
.planning/quick/260330-ld1-example-id-id/260330-ld1-PLAN.md
Normal 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*
|
||||
@@ -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*
|
||||
Reference in New Issue
Block a user