手势识别播放器-python

AI_player

手势对应

  1. ok 播放
  2. 五指 音量放大
  3. 握拳 音量放小
  4. 中指 暂停
  5. 手指6 继续播放
  6. 手指向上 上一首
  7. 手指向下 下一首
  8. 双手和十 退出

1.先把包装好
2.去百度ai官网申请自己的接口 https://ai.baidu.com/tech/face/handgesture 然后配置ai_exe文件
3.打开player_interface即可运行

百度手势识别的帮助文档链接:http://ai.baidu.com/ai-doc/BODY/Yk3cpymjy
方便规范手势动作和对程序进行修改

链接:https://pan.baidu.com/s/1ETrMzaV21QO__iCYwby60Q?pwd=vgaf
提取码:vgaf

求关注

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用手势识别控制音乐播放器Python示例: ```python import cv2 import numpy as np import pyautogui import math # 定义肤色范围 lower_skin = np.array([0, 20, 70], dtype=np.uint8) upper_skin = np.array([20, 255, 255], dtype=np.uint8) # 初始化摄像头 cap = cv2.VideoCapture(0) while True: # 读取摄像头帧 ret, frame = cap.read() # 镜像翻转帧 frame = cv2.flip(frame, 1) # 转换颜色空间为HSV hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 提取肤色区域 mask = cv2.inRange(hsv, lower_skin, upper_skin) # 进行腐蚀和膨胀操作,去除噪声 mask = cv2.erode(mask, None, iterations=2) mask = cv2.dilate(mask, None, iterations=2) # 查找轮廓 contours, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if len(contours) > 0: # 找到最大的轮廓 max_contour = max(contours, key=cv2.contourArea) # 计算最大轮廓的凸包 hull = cv2.convexHull(max_contour) # 计算凸包的缺陷 defects = cv2.convexityDefects(max_contour, cv2.convexHull(max_contour, returnPoints=False)) if defects is not None: # 绘制轮廓和凸包 cv2.drawContours(frame, [max_contour], 0, (0, 255, 0), 2) cv2.drawContours(frame, [hull], 0, (0, 0, 255), 3) # 计算手指数量 finger_count = 0 for i in range(defects.shape[0]): s, e, f, d = defects[i, 0] start = tuple(max_contour[s][0]) end = tuple(max_contour[e][0]) far = tuple(max_contour[f][0]) # 计算手指之间的距离 a = math.sqrt((end[0] - start[0])**2 + (end[1] - start[1])**2) b = math.sqrt((far[0] - start[0])**2 + (far[1] - start[1])**2) c = math.sqrt((end[0] - far[0])**2 + (end[1] - far[1])**2) angle = math.acos((b**2 + c**2 - a**2) / (2*b*c)) * 180 / math.pi # 如果角度小于90度,认为是手指 if angle < 90: finger_count += 1 # 根据手指数量执行相应操作 if finger_count == 0: # 播放五指,音量放大 pyautogui.press('volumeup') elif finger_count == 1: # 握拳,音量放小 pyautogui.press('volumedown') elif finger_count == 2: # 中指,暂停 pyautogui.press('playpause') elif finger_count == 3: # 手指6,继续播放 pyautogui.press('playpause') elif finger_count == 4: # 手指向上,上一首 pyautogui.press('prevtrack') elif finger_count == 5: # 手指向下,下一首 pyautogui.press('nexttrack') elif finger_count == 10: # 双手和十,退出 break # 显示帧 cv2.imshow('Gesture Recognition', frame) # 按下'q'键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头并关闭窗口 cap.release() cv2.destroyAllWindows() ``` 请注意,此示例仅提供了一个基本的手势识别音乐播放器的框架,具体的手势和操作可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值