这次的目标是做出一个通过摄像头检测手指滑动,从而可以调整系统全局音量的程序

前期的准备工作

  1. Python的语法
  2. 准备可能需要安装的第三方库
  3. 思考整个程序的逻辑
  4. 可用的摄像头

安装可能用到的第三方库

pip install MideaPipe

第二个

pip install pycaw

可以在上下里面选择一个

pip install pywin32

至于说上面这两个有什么区别,下面会提到

第三个

pip install opencv-python

思考整个程序的逻辑

  1. 使用 OpenCV 作为图像处理的库,因为需要通过摄像头读取当前的画面,OpenCV 里面有专门用于图像处理的各种函数
  2. 使用机器学习相关的函数进行手关节跟踪检测,这里选择的是 Google 的 MideaPipe,这个是他的官网 https://google.github.io/mediapipe/
  3. 引用官网的一张图:
  4. 对识别到的关节结点,取其中的两个较远的点进行距离计算,当距离达到一定时,认定为提高音量,距离过小识别为降低音量
  5. 调整音量通过调用已有的库函数进行操作

在 pywin32 和 pycaw 中选一个

这两个都是用于调整系统的全局音量,各自的用法可以参考这里:https://www.zhihu.com/question/50565812/answer/2254577839

有什么区别?

  1. pywin32 是 Windows 系统自带的 api ,最可靠,因为是微软自家的函数,契合 Windows 平台,但是我目前还不太会用,所以做出来的结果就只有两种极端情况,调音量到最大,和调音量到最小
  2. pycaw 从我目前的使用来看,可以一格一格地调节音量, 还可以限制最大音量的数值,但是当系统音量调节至 0 以下会导致崩溃

可用的摄像头

基本上现在能用的笔记本上面的摄像头都没太大问题

手指滑动控制系统全局音量的程序(上)相关推荐

  1. 手指滑动控制系统全局音量的程序(中)

    这次的目标是做出一个通过摄像头检测手指滑动,从而可以调整系统全局音量的程序 接着上一篇继续讲 功能实现 1.OpenCV的视频处理 0表示使用系统默认的摄像头 使用一个用久成立的循环,使视频中的每一帧 ...

  2. 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序

    三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 编号:3449654333414923追梦的萌大叔

  3. 三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真

    三轴桁架机械手控制系统 用于数控车床自动上下料 信捷触摸屏程序 可视化运动仿真 运行状态全程监控 支持电子手轮,方便调机. 本链接包含屏和PLC全套程序 程序已调试 ID:69499654333414 ...

  4. 小程序 | 小程序中常用的事件 + 事件对象的属性列表 +小程序事件传参 + 小程序全局配置 + 小程序页面配置 + 小程序发起网络数据请求

    文章目录 一.WXML 模板语法 数据绑定 事件绑定 ⭐小程序中常用的事件 ⭐事件对象的属性列表 target 和 currentTarget 的区别 bindtap 的语法格式 在事件处理函数中为 ...

  5. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 复制代码 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位 ...

  6. android仿苹果悬浮窗(自动停靠、随手指滑动、返回主屏幕)

    说明:本人写博客一来是为了方便日后查看项目,二来是希望能够和广大的程序猿相互交流学习,文章布局简单,如有嫌弃,请绕行,如有错误,请指出,谢谢. 实验环境:安卓6.0 魅族手机 悬浮窗主要有以下几个功能 ...

  7. unity全局音量管理/全局音量设置与音量设置界面(含静音功能)

    前言 本文将会介绍如何使用audiomixer实现全局音量控制,并且会介绍如何实现游戏内的含静音功能的音量设置界面. 本人也是个初学者,在看过一些关于音量管理的教程后,发现使用audiomixer实现 ...

  8. androidstudio判断手指滑动方向_方向盘的黑科技有多“黑”

    Mercedes-Benz 从第一辆汽车发明到现在的一个多世纪里,有数不清的汽车品牌诞生,也有不少品牌衰败.而他们中间,真正敢说"我为汽车技术的革命与进步做出了贡献"的品牌却寥寥无 ...

  9. jquery 手指滑动多半屏_JS拖拽专题(五)——「玩出花儿来」移动端滑动事件的封装...

    欢迎来到我的JS拖拽专题系列文章,本章节将是拖拽系列的最后一篇.感谢大家的支持^_^ 上一章节我们说到了拖拽让图片相互之间交换位置,相对来说是一个比较综合的示例,涉及到了矩形的碰撞检测,勾股定理计算两 ...

  10. 手游频繁崩溃”闪退”? 从程序上找原因

    手游频繁崩溃"闪退"? 从程序上找原因 作为玩家,当游戏crash的时候是什么心情,如果这个游戏玩起来还不错的话,那我可能还会打开第二次,如果这个游戏一般的话我可能直接怒删了.当多 ...

最新文章

  1. 今日头条在消息服务平台和容灾体系建设方面的实践与思考
  2. 用_beginthreadex不用 CreateThread
  3. php glod,基于PHP的黄金价格示例代码-六派数据
  4. 杂谈:项目管理的是与非[转贴]
  5. MySQL 中ANALYZE [LOCAL NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
  6. mysql binlog rotate_binlog rotate引发的MySQL阻塞事件
  7. mui 图片预览(自定义)功能 - 案例篇
  8. Git操作记录方便查阅
  9. Pentium 4处理器架构/微架构/流水线 (9) - NetBurst执行核详解 - 执行单元与发射口
  10. 软件设计师的成长之路
  11. “.NET研究”理解.NET程序集的执行过程
  12. 超赞!终于有网友用Java实现了第三方qq账号登录...
  13. StarUML 3 中文文档 构件图
  14. 2015年维多利亚的秘密新晋十位天使
  15. JavaScript基础入门10
  16. 国内外RTI产品调查情况
  17. JAVA常用数据结构
  18. 2022阿里云国际注册教程-不用绑定paypal注册-Unirech阿里云代充
  19. 重写drf的ValidationError, 改变抛出异常的状态码
  20. Kubernetes学习笔记十:部署Mysql、Redis和Shardingshere

热门文章

  1. 上传大文件至阿里云服务器解决方案(理论上无限大文件,支持批量处理)
  2. 仓库管理系统c#语言代码,C#仓库管理系统+完整源代码
  3. 【gigabyte】开机循环进入技嘉主板界面、BIOS功能识别不出硬盘
  4. Origin上下标输入
  5. 将Origin Pro设置成中文显示
  6. 五子棋游戏开发六子棋游戏开发
  7. linux纯终端下中文输入,Ubuntu 14.04 终端模式下中文输入 听歌
  8. JSP SSH公车拍卖系统myeclipse开发mysql数据库bs框架java编程网结构详细设计
  9. Unity与 DLL文件 ☀️| 怎样使用 C# 类库 生成一个DLL文件 并 调用!
  10. 矩阵连乘问题C++实现