网络摄像头无法通过OpenCV读取,但可以通过guvcview读取

时间:2019-05-16 21:50:17

标签: python opencv v4l2 v4l

我有一个很老的摄像头。我一直在尝试使其工作。我从guvcview开始工作,但是它只给我捕获的第一帧,然后停止。现在很好。

我正在尝试使用OpenCV重新创建此行为。我在linux上并使用python。据我了解,我最好的选择是让OpenCV使用guvcview正在使用的v4l2。

我的长远想法是仅获取第一帧,但是要循环执行以获取“视频”,但是帧速率较低。

但是,在下面的非常简单的程序中,出现以下错误:

import cv2
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
if frame:
    cv2.imshow("frame", frame)

我循环执行此代码,直到向我展示一些内容。 我收到的错误:

select timeout
VIDIOC_DQBUF: Resource temporarily unavailable
VIDIOC_QBUF: Invalid argument

有时guvcview会出现相同的错误,但是重新启动该程序将解决此问题。请注意,在我的程序运行时,guvcview无法正常工作(即使未显示任何图像)。还要注意,read()函数需要几秒钟的时间才能返回。

0 个答案:

没有答案