如何使用OpenCV获取数字网络摄像头

时间:2012-10-22 10:46:01

标签: 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(域的最大摄像头数),但实际上只连接了一个网络摄像头。如何获得数字网络摄像头?提前谢谢。

2 个答案:

答案 0 :(得分:0)

当只有一台摄像机时,索引未使用(您可以传递-1)。 请尝试检查返回的opaque结构指针的标识。我认为(抱歉,没有经过测试,因为我只附加了一台相机),每个设备都应该是唯一的。

答案 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