2012-06-16 218 views
0

我正在學習OpenCV,因爲我想在夏天構建和編程3D掃描儀。OpenCV - 網絡攝像頭不起作用

我爲此目的購買了三個攝像頭(兩個用於實際立體圖像,一個用於紋理[或作爲備份])。

我試圖用OpenCV獲得攝像頭的視頻。然而,這是行不通的,因爲我最終以黑屏而不是視頻。

然後我用祖母的攝像頭試了相同的代碼。它運行良好。 但是,我已經購買了3種我打算用來製作掃描儀的網絡攝像頭:http://www.amazon.com/Webcam-Camera-Vision-Meeting-compatible/dp/B0015TJNEY/ref=pd_bxgy_e_img_b

我不想購買任何新的網絡攝像頭。

有沒有人有任何想法,爲什麼我的攝像頭不能使用OpenCV(他們與其他程序一起工作)?

如何讓OpenCV接受我的攝像頭?

任何建議,將不勝感激!

感謝

+0

@shobhit嗯,我查找任何錯誤消息 - 沒有。我也看了一下驅動文件。它被稱爲:'usbvideo.sys'。我也看了看周圍的Stackoverflow,發現:http://stackoverflow.com/questions/4430367/opencv-webcam-capture-problem?rq=1。它基本上說明了我的問題。但是第一個解決方案不起作用,因爲我已經包含了'cvWaitKey'。第二個解決方案似乎是我的問題,但我想知道如何解決它。 – eboix

+0

你的操作系統是什麼?我們可以通過usbvideo.sys驅動文件告訴它是windows,但即便如此。相機是否可以與其他程序一起使用? –

+0

該相機可與其他程序一起使用,例如VLC播放器。我有Windows 7企業版。如果我的攝像頭無法與OpenCV一起工作,那麼我會下載一些其他庫,並將網絡攝像頭輸入到一個文件中,然後我將使用OpenCV讀取它。 – eboix

回答

0

如果你的程序通過這一步,你應該嘗試cvCaptureFromCAM(0); 0不同的號是第一個網民,但也許你的設置爲1,2或3,你也可以嘗試-1看看會發生什麼

CvCapture *capture; 
capture = cvCaptureFromCAM(0); 
if (!capture) 
{ 
    printf("Error at capture"); 
    return 1; 
} 
+0

感謝您的幫助。我之前做過。 「capture」不是「NULL」。我從中得到的圖像也不是「NULL」。但是,它是空白的。 – eboix

+0

嘗試使用cvWaitKey(1);每幀之後或嘗試調試,並看看等待是否是問題。 – Mark

+0

我的代碼實際上有'cvWaitKey',它和我祖母的相機一起工作。 – eboix