我目前在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与凸轮索引相关联?
我搜索了here和tried the code here.我认为立体视觉用户经常遇到这个问题,那么人们如何管理这个?
答案 0 :(得分:3)
不是一个真正的答案,但我认为那不是真的。
我为制作应用程序所做的是完全在OpenCV之外进行视频处理,然后将帧转换为OpenCV图像并进行进一步处理。
在Windows上,您可以使用DirectShow,我也使用了相机专用的API。不以任何方式携带或方便,但它具有工作的好处。从好的方面来说,您通常可以访问全套相机设置和功能,而不仅仅是OpenCV定义的几个属性。