2

我使用以下代码获得了数字网络摄像头:

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

4

2 回答 2

0

当只有 1 个摄像头时,索引未使用(可以传递 -1)。尝试检查返回的不透明结构指针的身份。我认为(抱歉,未测试,因为我只连接了 1 个摄像头)对于每个设备来说应该是唯一的。

于 2012-10-22T14:33:49.607 回答
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
于 2012-10-22T20:19:24.890 回答