OpenCV帧率显示
时间: 2024-10-11 11:01:51 浏览: 73
在OpenCV中,显示视频流的帧率(frame rate)通常是为了实时评估视频处理的速度或者监控视频采集设备的能力。要在程序中添加帧率显示,你需要在每一帧处理后计算并更新显示时间。
以下是一个简单的示例,展示如何在处理摄像头帧的同时计算并显示帧率:
```python
import cv2
import time
def get_frame_rate(cap):
start_time = time.time() # 获取当前时间
fps = 0 # 初始化帧率计数器
while True:
# 读取帧
ret, frame = cap.read()
if not ret:
break
# ... 进行你的图像处理...
# 计算并显示帧率
current_time = time.time()
elapsed = current_time - start_time
if elapsed > 1:
fps = round(1 / elapsed, 2) # 每秒大约获取了多少帧
start_time = current_time # 更新开始时间以便下一次计算
# 显示帧率文本
cv2.putText(frame, f"FPS: {fps}", (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 0), 2)
# 显示帧
cv2.imshow('Video Frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'): # 按 'q' 键退出
break
cap.release()
cv2.destroyAllWindows()
# 创建摄像头实例
cap = cv2.VideoCapture(0)
# 调用函数开始显示帧率
get_frame_rate(cap)
```
在这个示例中,`time.time()`用于记录时间戳,每秒钟检查一次帧率,并用`cv2.putText()`将帧率信息绘制到视频窗口上。
阅读全文