繁体   English   中英

如何使用OpenCV Python降低USB Webcam 2.0的帧速率

[英]How to decrease frame rate of USB webcam 2.0 using openCV python

我正在使用ubuntu 16.04并使用USB 2.0网络摄像头。 我想以某种方式降低帧速率,因为我正在处理的项目需要人脸检测,这确实落后于视频,因此想降低帧速率。

我尝试实现以下代码

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 15)
fps = int(cap.get(5))
print("fps:", fps)

while(cap.isOpened()):

    ret,frame = cap.read()
    if not ret:
        break

    cv2.imshow('frame', frame)

    k = cv2.waitKey(1)
    if k == 27:
        break

我收到以下错误

(python3:24100): GStreamer-CRITICAL **: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed

如果我将上述代码中的帧频设置为30(默认帧频),那么我会得到正确的视频,但是如果更改它,则会出现上述错误。

如何通过代码甚至通过设置手动降低帧速率(如果有方法)

好的,有几种方法可以执行此操作,但是我建议您先检查网络摄像头的功能。 您可以通过安装:

sudo apt-get install v4l-utils

并运行:

v4l2-ctl --list-formats-ext

如果未列出所需的帧速率,则可以增加cv2.waitKey()的值, cv2.waitKey()其与time.time()计时,以获取所需的帧速率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM