如何在Qt 4.8(C ++)中使用Video4Linux2(v4l2)在OpenCV 2.4中捕获视频?

时间:2012-08-22 17:45:14

标签: c++ linux qt opencv v4l2

我有Xubuntu 12.04。 我可以看到,我的网络摄像头不是由Linux版本的OpenCV 2.4提供的,因为在Windows XP(在同一台机器上)代码

CvCapture* capture = cvCaptureFromCAM(0)

不会返回NULL,但在Linux中它会返回NULL。我尝试了许多论点(许多负面,许多正数和零)。

但是其他应用程序可以从Linux中的网络摄像头捕获视频。

我已经尝试编译并运行this code,我认为它运行良好,因为我可以看到点,我也可以看到一些奇怪的缓冲区内容(使用-o键)。我认为,内容是框架,但我无法理解,如何使用它(例如,从中创建正确的IplImage *)。

如何从Qt中的网络摄像头捕获视频以进一步进行OpnenCV视频处理?

我还需要一次从多个USB和IP摄像头捕获视频。

解决方案必须免费用于商业用途

1 个答案:

答案 0 :(得分:2)

您必须使用v4l支持构建OpenCV。看看这个guide。并确保在配置构建之后您有以下这一行:

  

V4L / V4L2:使用libv4l

一些谷歌搜索后,

更新:我发现这是一个错误。请参阅this thread并尝试从第三篇文章中修复(使用LD_PRELOAD或将v4l1compat.so添加到链接器)。