我想获取可用相机的数量。
我试图对像这样的相机进行计数:
for(int device = 0; device<10; device++)
{
VideoCapture cap(device);
if (!cap.isOpened())
return device;
}
如果连接了相机,则它永远不会失败。
因此,我尝试预览不同的设备,但始终获得相机的图像。
如果连接第二台摄像机,则设备0为摄像机1,设备1-10为摄像机2。
我认为DirectShow设备有问题。
如何解决这个问题呢?还是在OpenCV1
cvcamGetCamerasCount()
中有类似的功能?我正在使用Windows 7和USB相机。
最佳答案
OpenCV仍然没有API来枚举摄像机或获取可用设备的数量。有关详细信息,请参见OpenCV错误跟踪器上的this ticket。
未定义VideoCapture的行为,即设备数量大于连接的设备数量,并且取决于用于与摄像机通信的API。有关OpenCV中使用的API列表,请参见OpenCV 2.3 (C++,QtGui), Problem Initializing some specific USB Devices and Setups。
关于c++ - 如何计算OpenCV 2.3中的摄像机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7322939/