从网络摄像头抓取图像以与OpenCV一起使用

Ham*_*aya 1 linux opencv image-processing

这是我上一个问题的后续跟进,

OpenCV PS 3 Eye

有人可以建议一个允许我从相机中抓取帧而不用太多大惊小怪的库(比如视频视频输入lib for windows)并将它们传递给我的应用程序中的opencv吗?

ejb*_*ejb 7

我有一个使用完全不同的网络摄像头的并行问题:在奶酪/等中运行良好,v4l-info显示正确的设置,但openCV将失败:

HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV Unable to stop the stream.: Bad file descriptor

经过多次抨击后,我发现至少有一个人在各种应用程序中遇到类似的网络摄像头问题.

在盲目的信仰中,我立刻打了一拳,export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so然后" 噗噗 "地工作了.

openCV v4l2接口不像v4l实现那样强大,导出是一个快速的解决方法(openCV似乎恢复到v4l).

快速浏览opencv/modules/highgui/src/cap_v4l.cpp它似乎就像openCV想要使用v4l2一样.

我正在运行Ubuntu Lucid 2.6.32-28-generic x86_64,libv4l-0 v0.6.4-1ubuntu1,几天前从repo的HEAD中拉出openCV.

在解释这个问题的过程中,我已经解决了我的问题.事实证明,openCV默认情况下将v4l2设备上的分辨率强制为640x480 - 而我的设备的最大分辨率为320x240,这在测试格式类型时会导致错误opencv::highgui::cap_v41::try_palette_v4l2.我更改了DEFAULT_V4L_WIDTHDEFAULT_V4L_HEIGHT.