使用 c910 设置分辨率时 OpenCV 出现错误

使用 c910 设置分辨率时 OpenCV 出现错误

我一直在尝试使用 OpenCV 通过 python 控制我的网络摄像头 (Logitech c910)。我已设法通过 .read() 捕获图像,但它们的尺寸为 640 x 480,而且我未能将分辨率设置为最大值 2592 x 1944。

我以前有 opencv 2.4.8,但现在我有 3.0.0-dev

这是我尝试的代码和输出:

In [1]: import cv2
In [2]: cap = cv2.VideoCapture(1)
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
In [3]: cap.open(1)
HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Out[3]: True
In [4]: r,f = cap.read()
VIDIOC_STREAMON: Bad file descriptor
In [5]: r
Out[5]: False

我按照我发布的另一个问题中的说明安装了 3.0.0-dev。 如何为 python 安装 opencv 2.9?

我选择开发版本的原因是因为在这篇文章中有人说这解决了他们的问题。 http://answers.opencv.org/question/2061/how-to-set-resolution-of-video-capture-in-python/

答案1

由于你正在从源代码构建 opencv,请尝试遵循Debian 打包确保与 Linux 的兼容性。例如,我正在考虑 V4L2 支持:

CMAKE_ARCH_FLAGS += -DWITH_V4L=ON

相关内容