AI 虚拟鼠标
AI Virtual Mouse
📌 项目介绍
挥挥手就能控制电脑:食指指尖移动光标,食指与中指并拢时点击,还能通过手指状态实现右键、滚动等操作。
它把手势追踪(MediaPipe 21 点)与系统自动化(pyautogui)结合起来,是 CV 与桌面自动化结合的经典演示项目。
🧰 环境与物料
- 电脑 + 摄像头
- Python 3.7+ 环境
- pip 安装:opencv-python、mediapipe、cvzone、pyautogui
- (可选)外接鼠标备用,避免调试时失去控制
🔧 步骤拆解
1
安装依赖
pyautogui 负责移动鼠标与点击
部分系统需授权辅助功能权限才能控制鼠标
2
手势检测
复用 HandTrackingModule 检测手部关键点
确定食指指尖与中指指尖坐标
3
坐标映射
把摄像头画面的坐标映射到屏幕分辨率
建议按比例线性映射,并加平滑处理减少抖动
4
移动光标
食指指尖位置驱动鼠标移动
pyautogui.moveTo 移动,注意速度与平滑系数
5
点击手势
食指与中指距离小于阈值时判定为点击
用 pyautogui.click 模拟点击,防抖时滞避免误触
6
扩展操作
加更多手势:右键、双击、拖拽、滚轮
封装手势→动作的映射表,方便定制
💡 要点提示
- 光标平滑滤波(对多帧坐标取均值)能大幅减少手抖
- 点击判定加 2~3 帧的持续时间过滤,防止快速划过误触
- 屏幕分辨率与摄像头画面比例不同时,先等比缩放再映射