c++ - 如何区分OpenCV相机?

标签 c++ linux windows macos opencv

我正在编写 C++ 类来管理多个摄像头并从中读取帧。假设它是 OpenCV 的包装器。目前,我正在通过尝试创建 0-10 范围内的设备来寻找相机,如果有输出,我知道我已经找到了可以工作的相机。我总是可以保存这些相机的内部 ID 以区分它们,但是如果插入另一个相机怎么办?它可能会破坏 ID 的顺序。那么有什么方法可以通过获取它们的硬件 ID 来区分 OpenCV 相机吗?

最佳答案

我知道这对您帮助不大,但简短的回答是“不,OpenCV 目前不提供该功能。”

根据doc ,任何硬件 ID 都不是您可以使用 get 方法或任何其他方法检索的属性。

话虽如此,如果您非常想使用 OpenCV,我仍然会在各种平台上测试 OpenCV 2.4.10 的行为并使用各种中间件,看看它的行为如何。如果你得到一致的行为,那么你可以运行它,但要为它在未来崩溃做好准备。对您有用的是 OpenCV 在后端使用各种中间件,例如 V4L、Qt 等,这些中间件维护良好并且或多或少保持一致。

回想起来,对于商业软件,我现在会完全远离 OpenCV 的视频接口(interface),除非您对我描述的情况感到满意。请注意,OpenCV 3.0 videoio 库此时不稳定并且有公开的错误报告。

关于c++ - 如何区分OpenCV相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28770828/

相关文章:

java - 设置 Path 环境变量行为在 Windows 10 上有所不同

c++ - 关于 DynamicArrayStack 的基本问题

c++ - C++ 中的字符串到字节或 Char*

c++ - 使用 ctime 的 tzset 有什么缺点?

C++ 内联函数

linux - pthreads 条件变量在 Linux 中是如何实现的?

linux - 编写项目符号和数字文本 GTKTextView

linux - 通过 snmp/WMI 或在 Linux screen/ssh session/w 等上监视和捕获有关远程虚拟机的 Zenoss 事件 session 详细信息。

windows - Ruby 可以用于基于 UI 的 Windows 应用程序吗?

windows - 德尔福 7 : Enabling automatic list of possible options for items I am working on?