2012-11-16 57 views
2

我有我至极内核编译,并增加了对USB摄像头的支持小busybox的系统。当我将相机连接到该设备它给了我一些输出和我得到的/ dev/video0的设备:静态opencv无法找到USB摄像头Linux的busybox?

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 
/# 

我已经静态编译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从摄像机读?

谢谢

回答

1

您可能会缺少V4L。我会运行V4L的示例代码并进行调查。你有没有检查过ldd,你所有的程序库都链接了?

+0

我在想同样的事情,但我的OpenCV编译statlicy和同样为我写了,OpenCV的与大多数额外的诸如WITH_V4L等等。我也确信编译内核的编译的代码对于UVC摄像头的和V4L设备等的支持,我会尝试编译动态Exec和复制所需要的库到目标设备时,我有一些时间来把这个项目在这个星期,并送还给你。 – Sisco

+0

所以我找到了问题,并能够解决它。当用cmake配置OpenCV时,我确信启用了v4l支持,但是当构建库v4l实际上没有用actuallibs编译时。在所有编译输出之间的某个地方,我发现有些v4l1和v4l2库没有找到。所以我从源代码编译v4l库,将它们复制到跨库文件夹中,然后瞧! – Sisco

+0

感谢您的更新。 – fireant