📜  cv2.videocapture python 设置帧率 - Python (1)

📅  最后修改于: 2023-12-03 14:40:24.513000             🧑  作者: Mango

cv2.videocapture python 设置帧率

当我们使用OpenCV中的cv2.videocapture函数读取视频文件时,有时候需要手动设置帧率,这篇文章将介绍如何使用Python设置帧率。

1. 基本用法

最基本的使用方法如下:

import cv2

cap = cv2.VideoCapture('video.mp4')
while cap.isOpened():
    ret, frame = cap.read()
    if ret:
        cv2.imshow('frame', frame)
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

上面的代码用于读取video.mp4视频文件,显示每一帧图像,按'q'键退出。但是这里每一帧的等待时间是默认的30ms,可以通过设置waitKey中的参数来设置帧率。

2. 设置帧率

我们可以通过sleep来实现帧率控制。假设我们要控制帧率为25fps,则可以这样实现:

import cv2
import time

cap = cv2.VideoCapture('video.mp4')
fps = 25
while cap.isOpened():
    ret, frame = cap.read()
    if ret:
        cv2.imshow('frame', frame)
        time.sleep(1/fps)
        if cv2.waitKey(25) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

上面的代码利用time.sleep函数来实现每一帧时间间隔为 1/fps 秒。同时,waitKey的参数也应该从30调整为1/fps×1000,保证下一帧开始前的时间间隔正确。

if cv2.waitKey(int(1/fps*1000)) & 0xFF == ord('q'):
    break

这样就实现了帧率控制。

3. 总结

本文介绍了如何使用Python设置OpenCV读取视频文件时的帧率,通过控制帧率,我们可以更好的控制图像流的展示和处理速度。