超好玩的"隔空操物"通过Python MediaPipe库实现

 更新时间:2022年01月19日 17:28:29   作者:大数据小禅  
这篇文章主要介绍了python+mediapipe+opencv实现手部关键点检测功能(手势识别),本文仅仅简单介绍了mediapipe的使用,而mediapipe提供了大量关于图像识别等的方法,需要的朋友可以参考下

🚀 文章简介 :本篇文章的实战部分中主要使用到了 MediaPipe 与 OpenCv 两个库,实现了隔空操作的效果,主要有**隔空操作鼠标,隔空绘画,隔空控制音量与隔空手势识别 **💪

演示视频

使用这个编程语言,我实现了隔空操物!!

1.项目效果展示

项目主要分为四个部分,分别是

  • 隔空音量控制
  • 隔空绘画
  • 隔空识别手势
  • 隔空操作鼠标

下面是这四部分的演示效果

1.1:隔空音量控制

请添加图片描述

1.2:隔空绘画

请添加图片描述

1.3 :手势识别

请添加图片描述

1.4:鼠标模拟

请添加图片描述

2.所涉及到的库

上面这些应用的实现主要涉及到了两个库

  • OpenCv
  • MediaPipe

2.1:OpenCv简介

OpenCV是一个基于Apache2.0许可发行的跨平台计算机视觉与机器学习的软件库。

可以运行在多种操作系统,例如Linux,Window,Mac OS等等。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

2.2:MediaPipe简介

MediaPipe是一由Google开发并开源的数据流处理机器学习应用开发框架。

它是一个基于图的数据处理管线,用于构建使用了多种形式的数据源,如视频、音频、传感器数据以及任何时间序列数据。

MediaPipe是跨平台的,可以运行在多种操作系统,工作站和服务器上,并支持移动端GPU加速。

使用MediaPipe,可以将机器学习任务构建为一个图形的模块表示的数据流管道,包括推理模型和流媒体处理功能。

3.项目环境搭建

这些应用的环境方便比较简单,可以直接在pycharm里面进行安装对应的库即可使用。如果遇到库不能下载或者是超时,可以进行pip换源下载,本应用使用Python进行编写

4.源码部分

应用涉及到的源码比较多,这里就不一 一进行贴出来了。

想要实践一下的同学可以私信我获取,或者是直接点击文章底部关注公众号,点击联系我添加备注源码获取 下面是关键部分代码的一些截取内容。

cap = cv2.VideoCapture(0)  #若使用外接摄像头 则更改为1或其他编号
cap.set(3, wCam)
cap.set(4, hCam)
pTime = 0
detector = handDetector()

success, img = cap.read()
    img = detector.findHands(img)
    lmList = detector.findPosition(img, draw=False)
    pointList = [4, 8, 12, 16, 20]
    if len(lmList) != 0:
        countList = []
        if lmList[4][1] > lmList[3][1]:
            countList.append(1)
        else:
            countList.append(0)
        for i in range(1, 5):
            if lmList[pointList[i]][2] < lmList[pointList[i] - 2][2]:
                countList.append(1)
            else:
                countList.append(0)
        count = countList.count(1)
        HandImage = cv2.imread(f'FingerImg/{count}.jpg')
        HandImage = cv2.resize(HandImage, (150, 200))
        h, w, c = HandImage.shape
        img[0:h, 0:w] = HandImage
        cv2.putText(img, f'{int(count)}', (15, 400), cv2.FONT_HERSHEY_PLAIN, 15, (255, 0, 255), 10)

5.总结

上面这四个项目主要是调用到了一些机器学习的库进行代码的编写。感兴趣的小伙伴可以导入项目在自己的电脑上进行实操一下。

到此这篇关于超好玩的"隔空操物"通过Python MediaPipe库实现的文章就介绍到这了,更多相关Python 隔空操物内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python文件比较示例分享

    python文件比较示例分享

    本文介绍了Python比较两个文本文件内容,如果不同, 给出第一个不同处的行号和列号,大家参考使用吧
    2014-01-01
  • Python中POST调用Restful接口示例

    Python中POST调用Restful接口示例

    这篇文章主要介绍了Python之POST调用Restful接口示例,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • python django集成cas验证系统

    python django集成cas验证系统

    cas是什么东西就不多说了,简而言之就是单点登陆系统,一处登陆,全网有权限的系统均可以访问
    2014-07-07
  • python 实现多线程下载视频的代码

    python 实现多线程下载视频的代码

    这篇文章主要介绍了python 实现多线程下载视频的代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Python实现数据库并行读取和写入实例

    Python实现数据库并行读取和写入实例

    本篇文章主要介绍了Python实现数据库并行读取和写入实例,非常具有实用价值,需要的朋友可以参考下
    2017-06-06
  • 使用Python中OpenCV和深度学习进行全面嵌套边缘检测

    使用Python中OpenCV和深度学习进行全面嵌套边缘检测

    这篇文章主要介绍了使用Python中OpenCV和深度学习进行全面嵌套边缘检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python打印日志方法的使用教程(logging模块)

    python打印日志方法的使用教程(logging模块)

    Python标准库自带日志模块logging,logging中涉及到4个核心组件,这些组件构建了logging体系,下面这篇文章主要给大家介绍了关于python打印日志方法的使用教程,需要的朋友可以参考下
    2022-06-06
  • Python实现轻松防止屏幕截图的技巧分享

    Python实现轻松防止屏幕截图的技巧分享

    屏幕截图是一种常见的用于记录信息或者监控用户活动的方法,为了保护隐私和数据安全,可以通过使用Python编写一些防护措施来防止他人截取我们的屏幕,下面我们就来学习一下有哪些具体操作吧
    2023-12-12
  • 用pandas按列合并两个文件的实例

    用pandas按列合并两个文件的实例

    下面小编就为大家分享一篇用pandas按列合并两个文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python的类成员变量默认初始值的坑及解决

    Python的类成员变量默认初始值的坑及解决

    这篇文章主要介绍了Python的类成员变量默认初始值的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02

最新评论