OSG窗口阻止刷新OpenCV窗口

时间:2015-04-02 15:20:47

标签: c++ windows opencv openscenegraph

我有一个应用程序在OpenCV窗口中显示(处理)网络摄像头输出(使用imshow),并且在另一个线程中,有一个显示某些几何体的OSG窗口。问题是只要OSG窗口刷新,OpenCV窗口就不会更新(线程中的所有处理都会发生,只是对imshow的调用什么都不做)。如果我拖动OSG窗口,禁用刷新,OpenCV窗口将开始正常更新。

为什么会发生这种情况的任何想法?

(Windows 8,NVIDIA Quattro K2100,VC ++)

1 个答案:

答案 0 :(得分:1)

您需要在OpenSceneGraph查看器循环中调用cv::waitKey()函数以更新OpenCV窗口。这意味着不能只使用OpenSceneGraph函数viewer.run()。相反,您必须使用以下查看器循环:

while (!viewer.done())
    {
        cv::waitKey(1);
        viewer.frame();
    }