2012-11-16 59 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