OpenCV怎么显示帧率在窗口上
时间: 2024-10-13 14:04:52 浏览: 131
opencv下实现显示并更改摄像头分辨率,帧率
在OpenCV中,要实现在视频流或实时摄像头的视频窗口上显示帧率,你可以使用`cv2.VideoCapture`读取视频流,同时计算每一帧之间的时间间隔,并以此来估算帧率。下面是一个简单的示例代码:
```python
import cv2
import time
# 创建VideoCapture对象
cap = cv2.VideoCapture(0) # 使用默认摄像头(0),若要读取视频文件,传入视频路径
if not cap.isOpened(): # 判断是否成功打开设备
print("Could not open camera")
exit(-1)
# 初始化帧计数和开始时间
frame_count = 0
start_time = time.time()
while True:
ret, frame = cap.read() # 读取一帧
if not ret: # 若无法读取,跳出循环
break
# 显示当前帧
cv2.imshow('Frame', frame)
# 计算并显示帧率
now_time = time.time()
fps = frame_count / (now_time - start_time)
frame_count += 1
cv2.putText(frame, f"FPS: {fps:.2f}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 等待按键,按q键退出
key = cv2.waitKey(1)
if key == ord('q'):
break
# 关闭所有资源并释放视频捕获对象
cap.release()
cv2.destroyAllWindows()
```
在这个例子中,我们计算了每秒播放了多少帧(即帧率),然后将结果显示在图片上。通过`cv2.waitKey()`函数等待用户按键,当用户按下 'q' 键时,程序会停止。
阅读全文