2010-07-07 74 views
0

我有一個在vlc中完美工作的網絡攝像頭,可用作/ dev/video0。但是,每當我使用cvCreateCameraCapture時,它都會返回null。我用0,1,-1作爲索引。什麼可能導致這個問題?我在Ubuntu 9.10 BTW上,使用openCV 2.1.0.1 ppa。cvCreateCameraCapture返回null

+0

什麼是您正在使用的攝像頭的品牌/型號?如果您讓我知道您使用的是什麼,我可能會提供幫助,但我有一些便宜的網絡攝像頭和一個創意實驗室的問題。不過,我的上網本和PS3 Eye Cam內置攝像頭可以正常工作。 – Diziet 2010-07-09 11:42:33

+0

我使用2個攝像頭,其中一個是Sirius USB攝像頭。另一個是我的筆記本電腦隨附的內置攝像頭(Lenovo Y330)。 – Karan 2010-07-09 20:55:07

+0

你可以做以下,讓我知道。我有點知道stackoverflow如此裸露與我! 首先,afaik opencv只支持Linux下USB設備的V4L,所以你需要檢查他們是否這樣做。我想,如果你在檢查/ var /日誌/的udev有: grep的視頻/無功/日誌/的udev 和 grep的-i爲v41 /無功/日誌/的udev | grep的DEVLINKS 和複製回線爲您的相機。這裏還有一個非常基礎的相機測試,我確定我正在對轉換進行講道,但是它在你的系統上做了什麼?按退出退出。 http://pastebin.com/9n3BJKVa 此外,相機在'奶酪'工作嗎? – Diziet 2010-07-11 09:25:04

回答

2

我使用的OpenCV 2.1在Ubuntu 9.04,這工作得很好:

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

請注意,我使用cvCaptureFromCAM()代替cvCreateCameraCapture()

+0

@ user280454對你有幫助嗎? – karlphillip 2010-10-26 16:32:44

1

我也在Ubuntu上使用OpenCV(但是來自標準回購)。我有非常類似的問題,我發現的解決方案是從源代碼編譯OpenCV。我激活了--with-v4l選項,它工作正常(您可能還需要其他標誌,這取決於您的需要)。如果你自己編譯OpenCV,使用CMake。 「正常」製作也有makefile,但它們都很舊。