1

我正在尝试在 OpenCV 3.1 中使用 OSVR 红外摄像机。

初始化工作正常。

摄像头上的绿色 LED 亮起。

当我调用VideoCapture.read(mat)它时,它返回 false 并且mat为空。其他摄像头使用相同的代码可以正常工作,VLC 可以从 OSVR 摄像头获取流。

一些进一步的测试表明:grab()返回 true,而retrieve(mat)再次返回 false。从相机获取宽度和高度会产生预期的结果,但 MODE 和 FORMAT 让我得到 0。

这是配置问题吗?可以通过VideoCapture.set调用组合来解决吗?

4

1 回答 1

1

选择从开发人员那里收到的官方回答(在下面我自己的解决方案之后):我的相机无法与 OpenCV 一起使用的原因可能是它有旧固件(v7 之前的版本)。

解决方法(或仅更新固件):

在浏览与该问题远程链接的任何内容时,我在这里找到了答案: Fastest way to get frames from webcam

您需要指定它应该使用 DirectShow。

VideoCapture capture( CV_CAP_DSHOW + id_of_camera );
于 2016-12-09T15:33:50.417 回答