【问题标题】:How to capture video in OpenCV 2.4 with Video4Linux2 (v4l2) in Qt 4.8 (C++)?如何在 Qt 4.8 (C++) 中使用 Video4Linux2 (v4l2) 在 OpenCV 2.4 中捕获视频?
【发布时间】:2012-08-18 04:49:40
【问题描述】:

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

CvCapture* capture = cvCaptureFromCAM(0)

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

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

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

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

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

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

【问题讨论】:

    标签: c++ linux qt opencv v4l2


    【解决方案1】:

    您必须构建具有 v4l 支持的 OpenCV。看看这个guide。并确保在配置构建后你有这一行:

    V4L/V4L2:使用 libv4l

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

    【讨论】:

    • 我确实使用 WITH_V4L=TRUE。但我会尝试再次构建 OpenCV。
    • 我已经按照说明完成了。它不能解决我的问题。它仍然返回 NULL。
    • 是的。我在我的问题中说过。例如,Skype 和 Cheese 与我的相机完美配合。基于 v4l2 的测试应用程序可以工作,但我不明白如何从中获取帧并在 OpenCV 中使用它们
    • 我想,它已经过时了……这些帖子的日期是 2009 年。而且我什至没有文件夹/usr/lib/libv4l/,还有文件/usr/lib/libv4l/v4l1compat.so
    • 如果你没有 libv4l,你可能应该安装它。这是 GPL,顺便说一句。
    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多