[英]Uniquely Identifying OpenCV Cameras
我目前在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
的属性USB device - Device Class guid
,这似乎是一个持久的值。 有没有办法将此ID与凸轮索引相关联?
不是真正的答案,但后来我认为没有真正的答案。
我为生产应用程序所做的是完全在OpenCV之外进行视频处理,然后将帧转换为OpenCV图像并进行进一步处理。
在Windows上,您可以使用DirectShow,我也使用了特定于摄像头的API。 不以任何方式携带或方便,但它具有工作的好处。 从好的方面来说,您通常可以访问全套相机设置和功能,而不仅仅是OpenCV定义的几个属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.