独特识别OpenCV相机

时间:2014-06-12 20:47:34

标签: c++ winapi opencv camera

我目前在C ++的Win 7上使用opencv2.4.8三个摄像头。我理解如何通过VideoCapture cap等从相机读取,但我无法确定哪个相机是哪个。

据我所知,cap.open(int num)接收相机索引。就我而言,这些是 0,1,& 2。

    CAMA = 0 
    CAMB = 1 
    CAMC = 2

但是,如果在启动程序之前,索引0处的凸轮被拔掉,我的摄像头索引会发生变化。

    CAMA //GONE
    CAMB = 0
    CAMC = 1

那么有哪些方法可以 记住 哪个相机哪个(除了每次向用户显示每个相机......)?也许记录一些可以在重启时读入的相机的唯一ID?

在设备管理器中,我看到USB device - Device Class guid的属性,这似乎是一个有点持久的值。有没有办法将此ID与凸轮索引相关联?

我搜索了heretried the code here.我认为立体视觉用户经常遇到这个问题,那么人们如何管理这个?

1 个答案:

答案 0 :(得分:3)

不是一个真正的答案,但我认为那不是真的。

我为制作应用程序所做的是完全在OpenCV之外进行视频处理,然后将帧转换为OpenCV图像并进行进一步处理。

在Windows上,您可以使用DirectShow,我也使用了相机专用的API。不以任何方式携带或方便,但它具有工作的好处。从好的方面来说,您通常可以访问全套相机设置和功能,而不仅仅是OpenCV定义的几个属性。