我正在研究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
And run:
v4l2-ctl --list-formats-ext
如果所需的帧速率未列出,您可以增加中的值cv2.waitKey()
并计时time.time()
以获得您想要的帧速率。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)