c++ - 如何计算 OpenCV 2.3 中的摄像头?

标签 c++ opencv

我想获取可用摄像头的数量。

我试着像这样数相机:

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/

相关文章:

C++ 列表插入奇怪的行为

opencv - 文件结构和在 Cmake 中制作可执行文件

python - 当由 C++ 线程程序调用的 Python 脚本本身调用时,OpenCV 函数会锁定

python - 如何更改 OpenCV Python 中轮廓的边界矩形值?

python - 如何从网络摄像头 OpenCV 裁剪圆形图像并删除背景

c++ - 二维数组中的预期常数

c++ - 为什么在此代码中S必须是const?

c++ - 我可以在 C++11 中使用具有值语义的多态容器吗?

c++ - 如何在未使用 C++ 连接到 DC 时获取成员计算机的专有名称

opencv - 为 python3 安装 opencv