超好玩的"隔空操物"通过Python MediaPipe库实现
作者:大数据小禅 发布时间:2023-06-04 23:21:09
🚀 文章简介 :本篇文章的实战部分中主要使用到了 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.总结
上面这四个项目主要是调用到了一些机器学习的库进行代码的编写。感兴趣的小伙伴可以导入项目在自己的电脑上进行实操一下。
来源:https://blog.csdn.net/weixin_45574790/article/details/122505077


猜你喜欢
- 引言为了深入学习 kube-scheduler,本系从源码和实战角度深度学 习kube-scheduler,该系列一共分6篇文章,如下:ku
- 我们在学习Python的时候,除了用pip安装一些模块之外,有时候会从网站下载安装包下来安装,我也想要把我自己编写的模块做成这样的安装包,该
- 一、正则1.正则表达式定义正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一
- 对于经常使用MYSQL的人来说,phpmyadmin是一个必备的工具。这个工具非常强大,几乎可以完成所有的数据库操作,但是它也有一个弱点,对
- 本文实例为大家分享了python实现大文本文件分割的具体代码,供大家参考,具体内容如下开发环境Python 2实现效果通过文件拖拽或文件路径
- 方式一import matplotlib.pyplot as pltimport numpy as npfrom scipy.stats i
- 本文实例讲述了python使用xmlrpclib模块实现对百度google的ping功能。分享给大家供大家参考。具体分析如下:最近在做SEO
- 本文实例讲述了python实现合并多个list及合并多个django QuerySet的方法。分享给大家供大家参考,具体如下:在用pytho
- 一、打开、关闭文件 open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零
- 本文实例总结了常用SQL语句优化技巧。分享给大家供大家参考,具体如下:除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发
- 一、前期准备(windows7+mysql-8.0.18-winx64)1.下载地址:https://dev.mysql.com/downl
- 目录Python图片验证码降噪 和8邻域降噪一、简介二、8邻域降噪三、Pillow实现四、OpenCV实现Python图片验证码降噪 和8邻
- 安装过程(rhel5.8+mysql5.5)安装过程中不断报错,参考了众多网上资料,一上午时间才搞定1,
- MySQL用Nested-Loop Join算法实现join查询区分驱动表和被驱动表,以驱动表的结果集为循环的基础,访问被驱动表过滤数据,然
- 背景简介ImageAI是一个面向计算机视觉编程的Python库,支持最先进的机器学习算法。主要图像预测,物体检测,视频对象检测与跟踪等多个应
- python的numpy库集成了很多的函数。利用其中的函数可以很方便的解决一些数学问题。本篇介绍如何使用python的numpy来求解积分。
- 概述for循环是一个循环控制结构,可以执行指定次数的循环语法第一种for {} //无线循环第二种for 条件语
- 经纬度坐标转换最常见办法就是调用第三方 API,例如百度、高德地图等服务平台,提供了相应的功能接口,它们的这类技术已经非常成熟啦,准确稳定,
- 快速搭建scrapy开发环境pythonpippip百度网盘注:不同的电脑上所带有环境不同,安装方式有些许差别1、成功安装python并添加
- 基本属性定义当前地牢的等级,地图长宽,房间数量,房间的最小最大长度,如下class Map: def __init