当前位置:   article > 正文

YOLOv8使用设备摄像头实时监测_yolov8调用摄像头实时检测

yolov8调用摄像头实时检测

 代码如下:

  1. from ultralytics import YOLO
  2. import cv2
  3. from cv2 import getTickCount, getTickFrequency
  4. yolo=YOLO('./yolov8n.pt')
  5. #摄像头实时检测
  6. cap = cv2.VideoCapture(0)
  7. while cap.isOpened():
  8. loop_start = getTickCount() #记录循环开始的时间,用于计算每一帧的处理时间
  9. success, frame = cap.read() # 读取摄像头的一帧图像
  10. if success:
  11. results = yolo.predict(source=frame) # 对当前帧进行目标检测并显示结果
  12. annotated_frame = results[0].plot() #将检测结果绘制在图像上,得到带有目标框的图像。
  13. # 显示程序
  14. loop_time = getTickCount() - loop_start #计算处理一帧图像所花费的时间。
  15. total_time = loop_time / (getTickFrequency()) #将处理时间转换为秒数。
  16. FPS = int(1 / total_time) #FPS计算
  17. # 在图像左上角添加FPS文本
  18. fps_text = f"FPS: {FPS:.2f}"#构造显示帧率的文本字符串
  19. font = cv2.FONT_HERSHEY_SIMPLEX#选择字体类型
  20. font_scale = 1 #设置字体的缩放比例
  21. font_thickness = 2 #设置字体的粗细
  22. text_color = (0, 0, 255) # 红色
  23. text_position = (10, 30) # 左上角位置
  24. cv2.putText(annotated_frame, fps_text, text_position, font, font_scale, text_color, font_thickness)
  25. cv2.imshow('Real-time detection', annotated_frame)
  26. # 通过按下 'q' 键退出循环
  27. if cv2.waitKey(1) & 0xFF == ord('q'):
  28. break
  29. cap.release() # 释放摄像头资源
  30. cv2.destroyAllWindows() # 关闭OpenCV窗口

测试结果展示:

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号