手指滑动控制系统全局音量的程序(上)
这次的目标是做出一个通过摄像头检测手指滑动,从而可以调整系统全局音量的程序
前期的准备工作
- Python的语法
- 准备可能需要安装的第三方库
- 思考整个程序的逻辑
- 可用的摄像头
安装可能用到的第三方库
pip install MideaPipe
第二个
pip install pycaw
可以在上下里面选择一个
pip install pywin32
至于说上面这两个有什么区别,下面会提到
第三个
pip install opencv-python
思考整个程序的逻辑
- 使用 OpenCV 作为图像处理的库,因为需要通过摄像头读取当前的画面,OpenCV 里面有专门用于图像处理的各种函数
- 使用机器学习相关的函数进行手关节跟踪检测,这里选择的是 Google 的 MideaPipe,这个是他的官网 https://google.github.io/mediapipe/
- 引用官网的一张图:
- 对识别到的关节结点,取其中的两个较远的点进行距离计算,当距离达到一定时,认定为提高音量,距离过小识别为降低音量
- 调整音量通过调用已有的库函数进行操作
在 pywin32 和 pycaw 中选一个
这两个都是用于调整系统的全局音量,各自的用法可以参考这里:https://www.zhihu.com/question/50565812/answer/2254577839
有什么区别?
- pywin32 是 Windows 系统自带的 api ,最可靠,因为是微软自家的函数,契合 Windows 平台,但是我目前还不太会用,所以做出来的结果就只有两种极端情况,调音量到最大,和调音量到最小
- pycaw 从我目前的使用来看,可以一格一格地调节音量, 还可以限制最大音量的数值,但是当系统音量调节至 0 以下会导致崩溃
可用的摄像头
基本上现在能用的笔记本上面的摄像头都没太大问题
手指滑动控制系统全局音量的程序(上)相关推荐
- 手指滑动控制系统全局音量的程序(中)
这次的目标是做出一个通过摄像头检测手指滑动,从而可以调整系统全局音量的程序 接着上一篇继续讲 功能实现 1.OpenCV的视频处理 0表示使用系统默认的摄像头 使用一个用久成立的循环,使视频中的每一帧 ...
- 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序
三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 编号:3449654333414923追梦的萌大叔
- 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真
三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真 运行状态全程监控 支持电子手轮,方便调机. 本链接包含屏和PLC全套程序 程序已调试 ID:69499654333414 ...
- 小程序 | 小程序中常用的事件 + 事件对象的属性列表 +小程序事件传参 + 小程序全局配置 + 小程序页面配置 + 小程序发起网络数据请求
文章目录 一.WXML 模板语法 数据绑定 事件绑定 ⭐小程序中常用的事件 ⭐事件对象的属性列表 target 和 currentTarget 的区别 bindtap 的语法格式 在事件处理函数中为 ...
- 全栈开发工程师微信小程序-上(中)
全栈开发工程师微信小程序-上(中) width: 750rpx; 复制代码 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位 ...
- android仿苹果悬浮窗(自动停靠、随手指滑动、返回主屏幕)
说明:本人写博客一来是为了方便日后查看项目,二来是希望能够和广大的程序猿相互交流学习,文章布局简单,如有嫌弃,请绕行,如有错误,请指出,谢谢. 实验环境:安卓6.0 魅族手机 悬浮窗主要有以下几个功能 ...
- unity全局音量管理/全局音量设置与音量设置界面(含静音功能)
前言 本文将会介绍如何使用audiomixer实现全局音量控制,并且会介绍如何实现游戏内的含静音功能的音量设置界面. 本人也是个初学者,在看过一些关于音量管理的教程后,发现使用audiomixer实现 ...
- androidstudio判断手指滑动方向_方向盘的黑科技有多“黑”
Mercedes-Benz 从第一辆汽车发明到现在的一个多世纪里,有数不清的汽车品牌诞生,也有不少品牌衰败.而他们中间,真正敢说"我为汽车技术的革命与进步做出了贡献"的品牌却寥寥无 ...
- jquery 手指滑动多半屏_JS拖拽专题(五)——「玩出花儿来」移动端滑动事件的封装...
欢迎来到我的JS拖拽专题系列文章,本章节将是拖拽系列的最后一篇.感谢大家的支持^_^ 上一章节我们说到了拖拽让图片相互之间交换位置,相对来说是一个比较综合的示例,涉及到了矩形的碰撞检测,勾股定理计算两 ...
- 手游频繁崩溃”闪退”? 从程序上找原因
手游频繁崩溃"闪退"? 从程序上找原因 作为玩家,当游戏crash的时候是什么心情,如果这个游戏玩起来还不错的话,那我可能还会打开第二次,如果这个游戏一般的话我可能直接怒删了.当多 ...
最新文章
- 今日头条在消息服务平台和容灾体系建设方面的实践与思考
- 用_beginthreadex不用 CreateThread
- php glod,基于PHP的黄金价格示例代码-六派数据
- 杂谈:项目管理的是与非[转贴]
- MySQL 中ANALYZE [LOCAL NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
- mysql binlog rotate_binlog rotate引发的MySQL阻塞事件
- mui 图片预览(自定义)功能 - 案例篇
- Git操作记录方便查阅
- Pentium 4处理器架构/微架构/流水线 (9) - NetBurst执行核详解 - 执行单元与发射口
- 软件设计师的成长之路
- “.NET研究”理解.NET程序集的执行过程
- 超赞!终于有网友用Java实现了第三方qq账号登录...
- StarUML 3 中文文档 构件图
- 2015年维多利亚的秘密新晋十位天使
- JavaScript基础入门10
- 国内外RTI产品调查情况
- JAVA常用数据结构
- 2022阿里云国际注册教程-不用绑定paypal注册-Unirech阿里云代充
- 重写drf的ValidationError, 改变抛出异常的状态码
- Kubernetes学习笔记十:部署Mysql、Redis和Shardingshere
热门文章
- 上传大文件至阿里云服务器解决方案(理论上无限大文件,支持批量处理)
- 仓库管理系统c#语言代码,C#仓库管理系统+完整源代码
- 【gigabyte】开机循环进入技嘉主板界面、BIOS功能识别不出硬盘
- Origin上下标输入
- 将Origin Pro设置成中文显示
- 五子棋游戏开发六子棋游戏开发
- linux纯终端下中文输入,Ubuntu 14.04 终端模式下中文输入 听歌
- JSP SSH公车拍卖系统myeclipse开发mysql数据库bs框架java编程网结构详细设计
- Unity与 DLL文件 ☀️| 怎样使用 C# 类库 生成一个DLL文件 并 调用!
- 矩阵连乘问题C++实现