基于Mediapipe的Python手势识别项目(附项目源码)

该文介绍了一个使用Mediapipe库在普通CPU环境下进行手势识别的Python项目。核心代码涉及OpenCV、Numpy和Mediapipe的集成,用于计算FPS、定义参数和处理图像。通过计算关键手部landmarks,确定手部中心坐标,进而绘制外接矩形和进行手势识别。文章还提供了一个基础框架,适用于扩展为更复杂的手势识别应用或游戏。

识别效果

如下所示,可以在普通的CPU环境下直接进行识别:

核心代码

导入库 主要需要的库包括mediapipe、numpy、opencv-python

import copy
import argparse

import cv2 as cv
import numpy as np
import mediapipe as mp


from collections import deque
import cv2 as cv

1.计算左上角FPS的方法,根据当前的运行速度来计算FPS

class CvFpsCalc(object):
    def __init__(self, buffer_len=1):
        self._start_tick = cv.getTickCount()
        self._freq = 1000.0 / cv.getTickFrequency()
        self._difftimes = deque(maxlen=buffer_len)

    def get(self):
        current_tick = cv.getTickCount()
        different_time = (current_tick - self._start_tick) * self._freq
        self._start_tick = current_tick

        self._difftimes.append(different_time)

        fps = 1000.0 / (sum(self._difftimes) / len(self._difftimes))
        fps_rounded = round(fps, 2)

        return fps_rounded

2.定义参数,参数部分可以保留默认值

def get_args():
    parser = argparse.ArgumentParser()

    parser.add_argument("--device", type=int, default=0)
    parser.add_argument("--width", help='cap width', type=int, default=960)
    parser.add_argument("--height", help='cap height', type=int, default=540)

    parser.add_argument("--model_complexity"
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值