2011-02-17 96 views
1

这是一个跟进我刚才的问题,从摄像头抓取的图像与OpenCV的

OpenCV PS 3 Eye

有人建议可以出库,让我抓住从相机帧没有太过计较(使用像视频videoinput窗口的Windows)并将它们传递给我的应用程序中的opencv?

+1

你可能最好找出为什么openCV不能与你的网络摄像头一起工作 - 任何其他库可能使用相同的V4L层 – 2011-02-17 18:56:47

+0

如果你读我prev问题使用v4l的其他应用程序除了opencv。 – 2011-02-18 18:14:21

回答

5

我使用了完全不同的摄像头有一个平行的问题:在奶酪的/ etc,v4l-info表现出适当的设置效果不错,但OpenCV的将失败:

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

经过多次挥舞我发现at least one guy有与各种应用中的网络摄像头类似的问题。

在盲目的信仰我迅速打export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so和« poof»它的工作。

openCV v4l2接口不像v4l实现那样健壮,导出很快workaround(openCV似乎恢复为v41)。

快速浏览opencv/modules/highgui/src/cap_v4l.cpp它看起来好像openCV想要使用v4l2。

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

在解释这个过程中,我解决了我的问题。事实证明,openCV默认情况下会将v4l2设备的分辨率强制为640x480,而我的设备最大分辨率为320x240,因此在测试opencv::highgui::cap_v41::try_palette_v4l2中的格式类型时会导致故障。我更改了 DEFAULT_V4L_WIDTH DEFAULT_V4L_HEIGHT