2013-01-06 127 views
0

我在連接我的攝像頭OpenCV。我的筆記本電腦的Windows 7 64位網絡攝像頭正常工作。由於沒有任何攝像頭OpenCV和連接攝像頭?

capWebcam = cvCaptureFromCAM(0); 
if(capWebcam == NULL) { 
    printf("error: capture is NULL \n"); 
    getchar(); 
    return(-1); 
} 

,它返回的消息錯誤:但如果我連接其他網絡攝像頭,代碼不會在所有的工作。我禁用筆記本電腦攝像頭,它的工作,但我越來越黑屏。

我試了兩個攝像頭,分別是微軟的Logitech HD Pro C920LifeCam Cinema。這是負責任的,以獲得凸輪行:

CvCapture* mycapWebcam = cvCaptureFromCAM(0); 

我改變了0到另一個值(0-10),這是關於這個結構的信息:

CvCapture * cvCaptureFromCAM(INT指數)

初始化從相機捕獲視頻。

參數:index - 要使用的相機的索引。如果只有一個攝像頭,或者使用什麼攝像頭無關緊要,則可以通過-1。

函數cvCaptureFromCAM()分配並初始化CvCapture結構以從攝像頭讀取視頻流。目前在Windows上可以使用兩個攝像頭接口:Windows視頻(VFW)和Matrox圖像庫(MIL);和Linux上的兩個:V4L和FireWire(IEEE1394)。

要釋放結構,請使用ReleaseCapture。

我該如何解決這個問題?

+0

你確定攝像頭是正常開啓?我的意思是,你需要禁用你的筆記本電腦攝像頭,是嗎? –

+0

感謝您的回覆。是的,我確定網絡攝像頭能夠正常工作,您說的禁用筆記本電腦網絡攝像頭是什麼意思,以及我怎麼做? – CroCo

+0

如果您使用Windows,您可以在「成像設備」的「設備管理器」中找到適用於筆記本電腦的USB攝像頭,然後右鍵單擊並禁用它,之前我遇到過這個問題,它與我一起工作 –

回答

0

如果使用的是其他相機,你應該設置爲1指數:

capWebcam = cvCaptureFromCAM(1);