我正在尝试在 OpenCV 3.1 中使用 OSVR 红外摄像头。
初始化工作正常。
相机上的绿色 LED 亮起。
当我调用 VideoCapture.read(mat)
时,它返回 false 并且 mat
为空。
其他相机使用相同的代码工作正常,VLC 可以从 OSVR 相机抓取流。
一些进一步的测试表明:grab()
返回 true,而 retrieve(mat)
再次返回 false。
从相机获取宽度和高度会产生预期结果,但 MODE 和 FORMAT 得到 0。
这是配置问题吗?能否通过 VideoCapture.set
调用的组合来解决?
最佳答案
Alternative 从开发者那里得到的官方回答(在我自己的解决方案之后):
我的相机无法与 OpenCV 开箱即用的原因可能是它有旧固件(pre-v7)。
解决方法(或仅更新固件):
我在浏览与该问题远程链接的任何内容时在这里找到了答案: Fastest way to get frames from webcam
您需要指定它应该使用 DirectShow。
VideoCapture capture( CV_CAP_DSHOW + id_of_camera );
关于opencv - 在 OpenCV 3 中使用 OSVR 相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061113/