在全屏模式下,OpenCV摄像机流停止

时间:2010-09-08 08:59:50

标签: image streaming opencv webcam fullscreen

我希望同时运行两个应用程序:一个用于分析使用OpenCV编写的网络摄像头的图像(图像是通过回调函数获取)和一个进入全屏模式的应用程序(比如一个3D游戏)。问题是,当启动全屏模式时,网络摄像头图像流正在停止 - 帧不会出现,不会调用回调函数。这似乎是OpenCV的一个问题 - 测试显示图像形式相机的简单应用程序已经准备好了。

为什么全屏模式可能会阻止图像流?如何绕过这个?

感谢任何提示。

3 个答案:

答案 0 :(得分:1)

您的问题并未告诉您是否曾尝试首先在OpenCV社区中搜索问题,因此我将其作为提示发布,以防万一:http://tech.groups.yahoo.com/group/OpenCV/

同时查看问题列表,可能是已知错误:https://code.ros.org/trac/opencv/report/1

答案 1 :(得分:1)

我不是OpenCV专家,所以这更接近建议而非答案 - 但我在第二台显示器上使用多个媒体播放器和一些首先是全屏应用。

在我的有限测试中,它归结为用于呈现3D应用程序的方法--DirectX似乎停止了媒体播放器,OpenGL没有。

所以它可能不是OpenCV有问题 - 它可能是DirectX在全屏游戏中对硬件所做的。

答案 2 :(得分:0)

实际上,OpenCV摄像机流的行为很奇怪。它似乎依赖于本机OpenCV窗口(cvNamedWindow()),它显示输出图像形式的网络摄像头。如果窗口在全屏幕的同一屏幕上,则流式传输将继续。如果摄像机窗口将放在另一个屏幕上,则流将停止。

另一个奇怪的事情是屏幕分辨率的变化。如果您更改屏幕的分辨率并且相机窗口不可见(关闭或甚至最小化),图像流将被阻止。

这些只是我对这个主题的观察,也许对某人有帮助。