我想获取可用相机的数量。

我试图对像这样的相机进行计数:

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/

10-09 21:31