我想获取可用摄像头的数量。
我试着像这样数相机:
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 来枚举相机或获取可用设备的数量。见 this ticket有关详细信息,请参阅 OpenCV 错误跟踪器。
对于大于连接的设备数量的设备编号,VideoCapture 的行为未定义,并且取决于用于与您的相机通信的 API。见 OpenCV 2.3 (C++,QtGui), Problem Initializing some specific USB Devices and Setups获取 OpenCV 中使用的 API 列表。
关于c++ - 如何计算 OpenCV 2.3 中的摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322939/