我使用此代码获取数字网络摄像头:
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 :(得分: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