2012-10-22 33 views
2

我得到使用這個代號網絡攝像頭:如何獲得數字攝像頭,使用OpenCV的

CountCamers := 0; 
j := 0; 
capture := cvCreateCameraCapture(700); 
while Assigned(capture) do 
begin 
    inc(CountCamers); 
    cvReleaseCapture(@capture); 
    capture := nil; 

    inc(j); 
    capture := cvCreateCameraCapture(700 + j); 
end; 

但是,有時候這種代碼給出的結果數是網絡攝像頭等於100(域的最大數量的相機),但在現實只有一個攝像頭連接。如何獲取號碼網絡攝像頭?提前致謝。

+0

你不能用OpenCV。尋找另一個可以在您的特定操作系統中爲您執行此操作的庫。不要試圖在OpenCV中找到解決方案,因爲它根本不存在 – Sam

回答

0

當只有1個攝像頭時,索引未使用(您可以傳遞-1)。 嘗試改爲檢查返回的不透明結構指針的標識。我認爲(對不起,沒有測試,因爲我只有1個攝像頭),應該是每個設備都是唯一的。

0

您可以獲取網絡攝像頭數量,檢查您是否可以獲取幀。 python示例:

def get_num_cameras(): 
    n = 0 
    num_cameras = 0 
    while n < 100: 
     camera = CaptureFromCAM(n) 
     if QueryFrame(camera): 
      num_cameras += 1 
     n += 1 
     return num_cameras