python-3.x - 如何使用 openCV python 降低 USB 网络摄像头 2.0 的帧率

标签 python-3.x opencv ubuntu-16.04 frame-rate usb-camera

我正在使用 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() 中的值并使用 time.time() 对其计时以获得帧率你想要的。

关于python-3.x - 如何使用 openCV python 降低 USB 网络摄像头 2.0 的帧率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586506/

相关文章:

python - Python 中文件串联的 ValueError

python - 通过使用 cv2.VideoCapture 降低 fps

intel - 我可以在 Ubuntu 16.04 上的第三代 Intel Ivy Bridge 集成 GPU 上安装 Vulkan 驱动程序吗?

linux - 不断收到错误 : ModuleNotFoundError: No module named 'piecash'

java - 在 ubuntu 上安装配置单元(derby 有问题?)

python - 运行脚本时无法消除 "stale element"错误

python - 质因数,帮助理解平方根的用途

Python Ctypes : convert list of integers to array of shorts

python - 使用 PIL 更改 OpenCV Python 中的字体系列

python - OpenCV-contrib/Python/Windows:Tracker.write()在matrix_wrap.cpp中引发错误,Tracker.read()使Python崩溃