【问题标题】:static opencv cannot find USB webcam on arm Linux busybox?静态opencv在arm Linux busybox上找不到USB网络摄像头?
【发布时间】:2012-11-05 05:42:48
【问题描述】:

我有一个小型busybox 系统,我为它编译了内核并添加了对USB 摄像头的支持。当我将相机连接到设备时,它会给我一些输出,我得到一个 /dev/video0 设备:

usb 1-1: new high-speed USB device number 3 using orion-ehci
uvcvideo: Found UVC 1.00 device Webcam C170 (046d:082b)
input: Webcam C170 as /devices/platform/orion-ehci.0/usb1/1-1/1-1:1.0/input/input1

/ # ls -l /dev/video0
crw-rw----    1 0        0          81,   0 Mar  8 08:08 /dev/video0
/ # 

我已经使用所有需要的库为 arm 静态编译了 opencv2.4,并且编译代码没有错误:

Mat frame;
VideoCapture capture(0);
if(!capture.isOpened()){
    printf("Cannot open camera\r\n");
    printf("%s\r\n", cvErrorStr(cvGetErrStatus()));
}

这给了我输出:

Cannot open camera
No Error
/ # 

相机在我的笔记本电脑上工作正常,我尝试了多个相机,结果都一样。我还尝试了许多不同的方法通过 opencv 打开相机槽,这也给了我相同的结果。

如何让我的busybox系统和opencv从摄像头读取?

【问题讨论】:

    标签: c++ opencv usb webcam busybox


    【解决方案1】:

    您可能缺少 V4L。我将运行 V4L 的示例代码并进行调查。您是否与 ldd 核对过您的程序所链接的所有库?

    【讨论】:

    • 我也在考虑同样的事情,但是我已经编译了 opencv 静态,我编写的代码也是如此,opencv 是用大多数额外的东西编译的,比如 WITH_V4L 等。我也确定了编译内核以支持 UVC 相机和 V4L 设备等。我将尝试编译一个动态 exec 并将所需的库复制到目标设备,当我本周某个时候有时间投入这个项目并回复你.
    • 所以我发现了问题并且能够解决它。使用 cmake 配置 OpenCV 时,我确保启用了 v4l 支持,但是在构建库时 v4l 实际上并未使用实际库编译。在所有编译输出之间的某个地方,我收到关于未找到 v4l1 和 v4l2 库的错误。所以我从源代码编译了 v4l 库,将它们复制到交叉库文件夹中,瞧!
    猜你喜欢
    • 2011-12-21
    • 2012-12-20
    • 2019-06-29
    • 2014-11-22
    • 2012-08-16
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多