【问题标题】:cvCreateCameraCapture returns nullcvCreateCameraCapture 返回 null
【发布时间】:2011-03-12 23:31:54
【问题描述】:

我有一个可以在 vlc 中完美运行的网络摄像头,可以作为 /dev/video0 使用。但是,每当我使用 cvCreateCameraCapture 时,它​​都会返回 null。我使用 0,1,-1 作为索引。什么可能导致问题?我在 Ubuntu 9.10 BTW 上,使用 openCV 2.1.0.1 ppa。

【问题讨论】:

  • 您使用的网络摄像头的品牌/型号是什么?我在使用一些便宜的网络摄像头和一个创意实验室时遇到了这个问题,如果你让我知道你在使用什么,我可能会提供帮助。然而,我上网本的内置摄像头和 PS3 Eye cam 工作正常。
  • 我正在使用 2 个网络摄像头,一个是 Sirius USB 网络摄像头。另一个是我的笔记本电脑 (Lenovo Y330) 附带的内置网络摄像头。
  • 您能做到以下几点并告诉我。我有点知道stackoverflow对我来说如此赤裸裸!首先,afaik opencv 仅支持 Linux 下 USB 设备的 V4L,因此您需要检查它们是否正在这样做。我想如果您使用以下命令检查 /var/log/udev: grep video /var/log/udev 和 grep -i v4l /var/log/udev|grep DEVLINKS 并复制回相机的行。这里还有一个非常基本的相机测试,我确定我正在向转换后的人宣讲,但它在你的系统上做了什么?按退出键退出。 pastebin.com/9n3BJKVa 摄像头也可以在“奶酪”中使用吗?
  • @Karan 也许是时候让您回顾一些问题并接受解决问题的答案了。这个问题有答案吗?

标签: c opencv


【解决方案1】:

我还在 Ubuntu 上使用过 OpenCV(但来自标准存储库)。我有非常相似的问题,我找到的解决方案是从源代码编译 OpenCV。我激活了 --with-v4l 选项,它运行良好(根据您的需要,您可能还需要一些其他标志)。如果您自己编译 OpenCV,请使用 CMake。也有用于“普通”make 的 makefile,但它们是旧的。

【讨论】:

    【解决方案2】:

    我在 Ubuntu 9.04 上使用 OpenCV 2.1,效果很好:

    CvCapture* capture = NULL;
    if ((capture = cvCaptureFromCAM(-1)) == NULL)
    {
        std::cerr << "!!! ERROR: cvCaptureFromCAM No camera found\n";
        return -1;
    }
    

    请注意,我使用的是 cvCaptureFromCAM() 而不是 cvCreateCameraCapture()

    【讨论】:

    • @user280454 对您有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2020-06-19
    相关资源
    最近更新 更多