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

前期的准备工作

  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. [原] Excel(VBA)中数据的非科学记数法显示
  2. SpringBoot+Vue+Itext实现前端请求文件流的方式导出PDF时在指定位置添加照片
  3. bootstrap 模态框垂直居中实现方法
  4. 浏览器九宫格的简单实现 - 蒋宇捷的专栏 - 博客频道 - CSDN.NET
  5. python 复数幂_python基础学习——运算符(1)
  6. promentheus的组件有_Prometheus实施架构小结 PDF 下载
  7. ais信号接收设备_基于USRP的AIS接收机实现
  8. SystemVerilog中package(包)的基本使用
  9. typedef struct
  10. ie6下margin间距是两倍的解决办法
  11. SpringBoot实现quartz定时任务可视化管理
  12. OLLYDBG逆天 往事随风修改专版
  13. nm命令 查看符号文件
  14. SQLServer触发器的使用
  15. svg模糊图片局部清晰透视图
  16. 日语输入法键盘假名对应表
  17. linux下wifi实现
  18. 如何引流购物粉?如何引流网购粉?怎么吸购物粉?
  19. php获取当前URL地址
  20. GIS学习二:地形分析

热门文章

  1. HTML分页符怎么设置,HTML中的分页符
  2. 外贸人寄样品时,怎么样让客户承担快递费用
  3. 数据分析 一文搞懂什么是RFM模型
  4. Cisco简单配置(十三)—链路聚合
  5. brew 安装pip_pip brew wget 安装
  6. MATLAB机器人工具箱的下载与安装
  7. 搜狗输入法劝退换成了谷歌拼音
  8. 关于stm32通过can与epos控制器建立通信,从而控制Maxon电机运转并且实时检测电机参数
  9. Unity学习1——unity安装踩坑
  10. Cortex-M3 (NXP LPC1788)之IIC控制器