当前位置:   article > 正文

屏幕距离识别加语音提醒

屏幕距离识别加语音提醒

语音播放

  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)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/363930
推荐阅读
相关标签
  

闽ICP备14008679号