在python + openCV中使用网络摄像头的问题

Col*_*ire 5 python webcam opencv

我使用以下代码使用openCV + python访问我的网络摄像头...

import cv

cv.NamedWindow('webcam_feed', cv.CV_WINDOW_AUTOSIZE)

cam = cv.CaptureFromCAM(-1)
Run Code Online (Sandbox Code Playgroud)

然后我在控制台中收到以下错误...

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我原来是用的,

cv.CaptureFromCAM(0)
Run Code Online (Sandbox Code Playgroud)

访问相同并具有相同的问题并使用-1,因为它假设选择任何网络摄像头.

我还测试了看Ubuntu是否识别网络摄像头,它确实如此.我正在使用v4l2进行网络摄像头.

{编辑}

我使用以下代码来显示视频输入,它似乎只显示网络摄像头捕获的一个图像而不是连续的视频输入...

import cv
cv.NamedWindow('webcam_feed', cv.CV_WINDOW_AUTOSIZE)
cam = cv.CaptureFromCAM(-1)
feed = cv.QueryFrame(cam)
cv.ShowImage("webcam_feed", feed)
cv.WaitKey(-1)
Run Code Online (Sandbox Code Playgroud)

Bri*_*n L 0

我相信你需要把

frame = cv.QueryFrame(cam)
cv.ShowImage("Webcam Feed", frame)
Run Code Online (Sandbox Code Playgroud)

循环不断更新窗口中显示的图像。也就是说,来自的帧cv.QueryFrame是静态图像,而不是连续视频。

如果您希望能够通过按键退出,请cv.WaitKey在循环中也使用较小的超时进行测试。