【发布时间】:2012-07-05 04:38:29
【问题描述】:
我正在使用以下代码通过 openCV + python 访问我的网络摄像头...
import cv
cv.NamedWindow('webcam_feed', cv.CV_WINDOW_AUTOSIZE)
cam = cv.CaptureFromCAM(-1)
然后我在控制台中收到以下错误...
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
我原来是用的,
cv.CaptureFromCAM(0)
访问相同的内容并遇到相同的问题并使用 -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)
【问题讨论】:
-
我得到了同样的错误,但它工作正常。我从网络摄像头获得了正确的图像输出。您的网络摄像头工作正常吗?你得到正确的图像了吗?
-
对我来说也一样。但正如 Froyo 提到的,它工作正常并获得正确的图像。你明白了吗?
-
好的,它显示在我创建的窗口中...但是出现了一个新问题,请参阅我对原始帖子所做的编辑...
-
这与我的 Engg 最后一年项目的前一天晚上(重新安装后)出现的问题完全相同。我编写了另一个脚本来捕获图像并将其发送到 OpenCV。 :P