【opencv】【mediapipe】手势检测的有趣玩法

本文介绍如何利用Mediapipe库在Python中实现手势识别,通过设置参数进行手部检测,并实时绘制手部关键点及连接线,同时计算并显示FPS,为后续的手势应用提供基础。

今天学习mediapipe检测手势识别
mediapipe还有很多其他很多有趣的应用,后面都是会慢慢学习到的。

import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture(0)
cap.set(3, 1280)  # 设置宽
cap.set(4, 720)  # 设置高

mpHands = mp.solutions.hands  # 检测手的类

# 检测
mpHandDetesctor = mpHands.Hands(static_image_mode=False,  # 要检测是静态图片还是动态的?视频和影响摄像头是动态的,图片是静态的。
                                max_num_hands=2,  # 检测最多的手的个数
                                model_complexity=1,  # 模型复杂度,只能是0或者1,值越大越精准
                                min_detection_confidence=0.5,  # 最小的置信度,0~1,值越大,检测越严格,值越小,误检测越高
                                min_tracking_confidence=0.5)  # 最终的严谨度,0~1,值越大,追踪越严谨,值越小,误检测越高
# 画图的工具
mpHandDrawer = mp.solutions.drawing_utils

pointStyle = mpHandDrawer.DrawingSpec(color=(255, 0, 0,
OpenCVMediapipe可用于实现手势识别Mediapipe是Google的一个开源项目,是集成机器学习视觉算法的工具库,提供开源、跨平台的常用机器学习方案,包含手势识别等各种模型;OpenCV是一个广泛使用的计算机视觉库,可辅助进行图像处理等操作 [^2]。 实现手势识别时,Mediapipe识别21个手指的关键点,众多应用可围绕此核心展开,比如智能家居中的非接触式控制、医疗健康的康复训练监测等 [^4]。 以下是一个简单的使用Python、OpenCVMediapipe实现手势识别的代码示例: ```python import cv2 import mediapipe as mp # 初始化Mediapipe的手部检测模块 mp_hands = mp.solutions.hands hands = mp_hands.Hands() mp_drawing = mp.solutions.drawing_utils # 打开摄像头 cap = cv2.VideoCapture(0) while cap.isOpened(): success, image = cap.read() if not success: print("Ignoring empty camera frame.") continue # 转换图像颜色空间 image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB) image.flags.writeable = False results = hands.process(image) image.flags.writeable = True image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) if results.multi_hand_landmarks: for hand_landmarks in results.multi_hand_landmarks: # 绘制手部关键点和连线 mp_drawing.draw_landmarks( image, hand_landmarks, mp_hands.HAND_CONNECTIONS) cv2.imshow('MediaPipe Hands', image) if cv2.waitKey(5) & 0xFF == 27: break cap.release() cv2.destroyAllWindows() ``` 这段代码通过调用摄像头,利用Mediapipe识别手部关键点,并使用OpenCV将关键点和连线绘制在图像上显示出来。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值