码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 屏幕距离识别加语音提醒


    语音播放

    1. import pygame
    2. pygame.mixer.init() #初始化
    3. pygame.mixer.music.load(r"7359.wav") #文件位置
    4. pygame.mixer.music.play(1) #播放语音
    5. while pygame.mixer.music.get_busy(): # 在音频播放为完成之前不退出程序
    6. pass

    完整代码

    1.多线程使语音可以播放完,预防卡音。

    2.小于35厘米语音提醒并更换距离提醒字体颜色,一般情况下用蓝色字体显示。

    3.使用过程中可以把倒数第二行注释掉,不进行窗口的显示,仅判断距离

    1. import cv2
    2. from cvzone.FaceMeshModule import FaceMeshDetector
    3. import pygame
    4. import threading
    5. from PIL import Image, ImageDraw, ImageFont
    6. import numpy as np
    7. # 初始化pygame.mixer
    8. pygame.mixer.init()
    9. # 加载音频文件
    10. pygame.mixer.music.load('7359.wav') # 靠的太近啦 #音频文件自行修改
    11. # 设置摄像头
    12. cap = cv2.VideoCapture(0)
    13. detector = FaceMeshDetector(maxFaces=1)
    14. # 定义播放音频的函数
    15. def play_audio():
    16. pygame.mixer.music.play(1)
    17. while pygame.mixer.music.get_busy():
    18. continue
    19. # 开始检测人脸
    20. while True:
    21. success, img = cap.read()
    22. img, faces = detector.findFaceMesh(img, draw=False)
    23. if faces:
    24. face = faces[0]
    25. pointLeft = face[145]
    26. pointRight = face[374]
    27. w, _ = detector.findDistance(pointLeft, pointRight)
    28. W = 6.3
    29. f = 600
    30. d = (W * f) / w
    31. print(d)
    32. # 设置距离颜色
    33. if d < 35:
    34. print("过近提醒")
    35. # 检查是否正在播放音频
    36. if not pygame.mixer.music.get_busy():
    37. # 使用线程播放音频,避免阻塞主程序
    38. audio_thread = threading.Thread(target=play_audio)
    39. audio_thread.start()
    40. text_color = (255, 0, 0) # 红色
    41. else:
    42. text_color = (0, 0, 255) # 蓝色
    43. # 将 Depth 文本显示为汉语
    44. pil_img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    45. draw = ImageDraw.Draw(pil_img)
    46. font = ImageFont.truetype("msyh.ttc", 36) # 使用微软雅黑字体,大小为36
    47. draw.text((face[10][0] - 95, face[10][1] - 5), f'距离:{int(d)}厘米', font=font, fill=text_color)
    48. img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR)
    49. cv2.imshow("Distance recognition", img) # 窗口名只能是英文
    50. cv2.waitKey(1)
  • 相关阅读:
    C++结构型模式-装饰模式
    第64篇:史上最严重的APT供应链攻击事件,借助Solarwinds攻击欧美的流程图梳理和分析(上篇)...
    BGP高级特性——BGP路由控制
    小型功率放大器的设计与制作——功率放大电路的关键问题
    Vue多级路由的实现
    AI计算机视觉进阶项目(一)——带口罩识别检测(3)
    【第十四篇】Camunda系列-多人会签【多实例】
    蚓激酶白蛋白纳米粒/红细胞膜定向包裹血红蛋白-白蛋白纳米粒的研究制备
    4、FFmpeg命令行操作6
    mysql文档--myisam存储引擎--myisam引擎全解--底层探索
  • 原文地址:https://blog.csdn.net/2301_76620728/article/details/137378179
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号