【问题标题】:an issue with cvGetCaptureProperty on opencvopencv 上的 cvGetCaptureProperty 问题
【发布时间】:2012-01-31 09:17:11
【问题描述】:

我有一个可用的 opencv 代码,它从我的网络摄像头获取信息并显示它。 (代码由here修改而来

唯一的问题是当我尝试打印每秒帧数时,

int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf ("Frames per Second: %d\n",fps);

-1 被打印出来。

另一个(侧面)问题是似乎存在一些运行时错误/警告

VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
select timeout
HIGHGUI ERROR: V4L2: Unable to get property <unknown property string>(5) - Invalid argument
HIGHGUI ERROR: V4L: Property <unknown property string>(2) not supported by device
HIGHGUI ERROR: V4L2: Unable to get property <unknown property string>(1) - Invalid argument
HIGHGUI ERROR: V4L: Property <unknown property string>(2) not supported by device

但是代码做了它应该做的事情,即显示来自网络摄像头的视频。

任何想法如何解决问题?我在 Eclipse 上使用 opencv 和 Ubuntu 11.10 上的 CDT

提前致谢。

【问题讨论】:

    标签: c++ eclipse opencv ubuntu-11.10


    【解决方案1】:

    从错误消息来看,这听起来像是您的网络摄像头驱动程序有问题。错误消息来自 Video4Linux(错误消息中的 V4L 或 V4L2),它是包含网络摄像头驱动程序的 Linux 内核的一部分。收到select() 失败和“设备不支持”错误消息可能意味着您的网络摄像头没有实现 V4L2 API 的这一部分。

    您可以通过使用具有已知良好驱动程序的相机测试您的代码来验证问题是否存在。不幸的是,这在内核中包含的网络摄像头驱动程序中很常见。其中许多都是逆向工程,因此只需访问视频流就可以了。

    【讨论】:

    • 谢谢,但是 fps 的 -1 值呢?有什么想法吗?
    • 您列出的错误消息不是“附带问题”;他们实际上是问题的根源。 OpenCV 无法向驱动程序查询 FPS(这会导致错误消息),因此它返回错误代码 (-1)。我不确定为什么 OpenCV 文档说错误代码应该是 0;这可能是一个错误或文档已过时。
    【解决方案2】:

    试试这个 HIGHGUI ERROR 错误:

    export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
    

    【讨论】:

    • 你应该解释它的作用
    猜你喜欢
    • 1970-01-01
    • 2021-12-15
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多