python怎么实时获取帧率,并puttext
时间: 2024-10-11 14:16:52 浏览: 33
在Python中,特别是使用OpenCV库处理视频流时,要实现实时获取帧率并添加文本(如FPS值),你可以这样做:
首先,你需要安装`opencv-python`库,如果没有安装可以使用pip安装:
```bash
pip install opencv-python
```
然后,下面是一个简单的例子展示了如何做到这一点:
```python
import cv2
import time
# 初始化摄像头
cap = cv2.VideoCapture(0) # 使用默认摄像头,如果有多台设备需改为此设备编号
# 设置字体和颜色
font = cv2.FONT_HERSHEY_SIMPLEX
color = (255, 0, 0)
font_scale = 1
thickness = 2
while True:
# 读取一帧
ret, frame = cap.read()
# 如果读取成功,开始计时
if ret:
start_time = time.time()
# 在帧上显示当前帧率
fps_text = "FPS: {:.2f}".format(cap.get(cv2.CAP_PROP_FPS))
cv2.putText(frame, fps_text, (10, 30), font, font_scale, color, thickness, cv2.LINE_AA)
# 显示帧
cv2.imshow('Video', frame)
# 计算并显示新的帧率
end_time = time.time()
if end_time - start_time >= 1:
fps = 1 / (end_time - start_time)
fps_text = "FPS: {:.2f}".format(fps)
# 更新文本
cv2.putText(frame, fps_text, (10, 30), font, font_scale, color, thickness, cv2.LINE_AA)
# 按 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在这个示例中,我们使用了`cv2.VideoCapture.get(cv2.CAP_PROP_FPS)`获取当前帧率,`cv2.putText`用于在帧上添加文本。每秒更新一次帧率,直到用户按下'q'键退出。
阅读全文