项目简介
本项目借助OpenCV库实现实时手指检测和手势识别功能,通过摄像头捕获视频来识别手部手势,并能根据检测到的手指位置控制串行设备(如Arduino),是计算机视觉技术在手势交互领域的应用展示。
项目的主要特性和功能
- 实时手势识别:利用OpenCV对视频流中的手部手势进行实时检测。
- 串行设备控制:根据识别出的手势,向连接的串行设备发送相应的控制信号。
- 手势自定义:可自行修改代码,调整手势与控制信号的对应关系。
安装使用步骤
安装要求
- Python(推荐版本3.11)
- OpenCV(cv2)库
cvzone
库- 可用的摄像头
- 串行设备(如Arduino)用于接收控制信号
安装步骤
- 将项目仓库复制或下载到本地。
- 使用以下命令安装所需的Python包:
bash pip install opencv-python-headless cvzone pyserial
使用步骤
- 将串行设备(如Arduino)连接到合适的COM端口。
- 运行
finger_detection.py
脚本:bash python finger_detection.py
- 程序运行后会弹出显示摄像头画面的窗口,将手置于摄像头前,程序会自动检测手部和手指。
- 按以下默认手势进行操作,程序会向串行设备发送相应控制信号:
- 拇指、食指和中指下压:发送'1'
- 拇指、食指上举,中指下压:发送'2'
- 拇指、食指上举,中指和无名指下压:发送'3'
- 拇指、食指上举,中指、无名指和小指上举:发送'4'
- 所有手指上举:发送'5'
- 其他配置:发送'0'
- 若要退出程序,按'q'键即可。
- 若需自定义手势,可修改
finger_detection.py
脚本中detect
函数里的finger
列表。
常见问题处理
- 若使用旧版Python资源,可能存在版本兼容性问题,建议使用Python 3.11。若安装旧版Python,需更新系统的PATH变量。
- 若出现“Port cannot be used”错误,通常是因为Arduino的串行监视器处于打开状态,关闭该监视器后重新启动程序即可。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】