手指计数
Finger Counter
📌 项目介绍
实时识别画面中举起几根手指,在屏幕上显示数字。
思路非常经典:利用手掌与手指关节的几何关系判断每根手指是否伸直——食指、中指、无名指、小指用「指尖 vs 上指节」的相对位置判断,大拇指用「指尖 vs 拇指根」的水平距离判断。它是手势追踪 + 简单逻辑的完美入门练习。
🧰 环境与物料
- 电脑 + 摄像头
- Python 3.7+ 环境
- pip 安装:opencv-python、mediapipe、cvzone
🔧 步骤拆解
1
手势检测
用 HandTrackingModule 获取 21 个关键点坐标
列出每根手指的指尖与指节索引
2
四指伸直判断
比较指尖与上一节指节的 y 坐标
指尖在上方(y 更小)则伸直
3
拇指判断
拇指比较指尖与食指根部的 x 坐标
按手的方向区分左右手,判定伸直/弯曲
4
计数与显示
统计伸直的手指数量
在画面上用大号字体显示数字
5
边界处理
手背/手心朝向不同时判断逻辑微调
测试各种手势确认计数正确
6
扩展玩法
可接计分游戏、手势命令等
把计数结果传给其他程序做控制信号
💡 要点提示
- 默认假设手心朝摄像头,翻转手背时拇指判断需取反
- 弯曲的手指会遮挡指节,必要时提高检测置信度
- 可以用多只手计数做「比大小」互动小游戏