如何使用OpenCV摄像头捕获设置帧率

时间:2012-09-29 11:42:06

标签: python opencv

如何在Python中使用OpenCV设置捕获帧率?这是我的代码,但生成的帧速率小于请求的30fps。此外,视频质量非常差。

import cv
cv.NamedWindow ('CamShiftDemo', 1)
device = -1
cap = cv.CaptureFromCAM(device)
size = (640,480)
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FPS,30)
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_WIDTH, size[0])
cv.SetCaptureProperty(cap, cv.CV_CAP_PROP_FRAME_HEIGHT, size[1])
while True:
    frame = cv.QueryFrame(cap)
    cv.ShowImage('CamShiftDemo', frame)
    cv.WaitKey(10)

1 个答案:

答案 0 :(得分:0)

您受硬件限制,即:

  1. 您的相机的捕捉功能,
  2. 您计算机的系统资源。
  3. 如果其中任何一个无法处理请求的捕获参数(在你的情况下为640x480分辨率为30fps),那你就不走运了。您为OpenCV 提供的参数仅仅是建议 - 它会尽力匹配它们。

    你使用什么型号的相机?我首先看看模型规格,看看他们是否宣传了你想要的参数。