我正在编写C ++类来管理多个摄像头并从中读取帧。让我们说它是OpenCV的包装器。目前我通过尝试创建0-10范围内的设备来查找相机。如果有输出我知道我找到了工作相机。我总是可以保存这些摄像头的内部ID以区分它们但是如果插入了另一台摄像机怎么办?它可能会破坏ID的顺序。那么有没有办法区分OpenCV摄像头,例如获取他们的硬件ID?
答案 0 :(得分:2)
我知道这对你没有多大帮助,但简短的回答是“不,OpenCV目前不提供这种能力。”
根据doc,任何硬件ID都不是您可以使用get方法或任何其他方法检索的属性。
话虽如此,如果你非常想使用OpenCV,我仍然会在各种平台上测试OpenCV 2.4.10的行为,并使用各种中间件,看看它的行为方式。如果你得到了一致的行为,那么你就可以运行它,但是有一点准备让它在将来中断。对您有用的是OpenCV在后端使用各种中间件,例如V4L,Qt等,这些中间件维护得很好,并且或多或少一致。
回想起来,除非你对我所描述的情况感到满意,否则我现在将完全远离OpenCV的视频界面用于商业软件。请注意,此时OpenCV 3.0视频库不稳定,并且已打开错误报告。