在 OpenCV 3 中使用 OSVR 相机
Using OSVR camera in OpenCV 3
我正在尝试在 OpenCV 3.1 中使用 OSVR 红外摄像头。
初始化工作正常。
摄像头上的绿色 LED 亮起。
当我调用 VideoCapture.read(mat)
时,它 return 是假的,而 mat
是空的。
其他相机使用相同的代码工作正常,VLC 可以从 OSVR 相机抓取流。
一些进一步的测试表明:grab()
return 正确,而 retrieve(mat)
再次 return 错误。
从相机获取宽度和高度会产生预期结果,但 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 3.1 中使用 OSVR 红外摄像头。
初始化工作正常。
摄像头上的绿色 LED 亮起。
当我调用 VideoCapture.read(mat)
时,它 return 是假的,而 mat
是空的。
其他相机使用相同的代码工作正常,VLC 可以从 OSVR 相机抓取流。
一些进一步的测试表明:grab()
return 正确,而 retrieve(mat)
再次 return 错误。
从相机获取宽度和高度会产生预期结果,但 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 );