opencv 显示帧率
时间: 2024-10-11 10:16:48 浏览: 10
在OpenCV中,为了实时显示视频帧率,你需要在每次处理完一帧后,计算出从上一次处理到这一次的时间间隔,然后通过这个间隔反推出帧率。以下是一个基本的Python代码片段展示了这一过程:
```python
import cv2
import time
def show_frame_rate(frame):
prev_time = time.time() # 上一帧的时间点
fps_counter = 0 # 帧率计数器
fps_text = "FPS: 0"
while True:
grabbed, frame = cap.read() # 读取帧
if not grabbed:
break
# 这里可以进行你的图像处理...
current_time = time.time() # 当前时间
elapsed = current_time - prev_time # 计算帧间时间差
if elapsed >= 1: # 如果已经过了一秒
fps_counter += 1 # 增加帧计数
prev_time = current_time # 更新上一帧时间
fps_text = f"FPS: {int(fps_counter)}" # 计算并更新帧率文本
# 将帧率显示在图片上
cv2.putText(frame, fps_text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
# 显示帧
cv2.imshow('Frame', frame)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
# 创建摄像头实例
cap = cv2.VideoCapture(0)
# 开始显示帧率
show_frame_rate(cap)
```
在这个例子中,我们每隔一秒就计算并显示一次帧率,帧率计数器会随着每一帧增加,直到新的秒开始才会清零并重新计算。