我编写了一些代码,目前由两个窗口组成,用于显示某些处理算法的不同阶段。很简单,我已使用cv::namedWindow()
创建了两个窗口,并且我正在cv::Mat
显示cv::imshow()
。我遇到了一个问题,一次又一次,随机(但不总是),cv::imshow()
拒绝更新这两个窗口。该程序还没有挂起,我可以看到它仍在工作并处理传入的帧(因为我正在打印到终端显示这个),只是窗口没有显示新的帧。我在每次致电cv::waitKey(2)
后都加了cv::imshow()
,但这没有帮助。
这很烦人,我似乎无法在网上找到任何东西。这并不总是发生,但它经常发生。有时需要几分钟,有时需要几秒钟。
我正在使用Ubuntu 12.04(以及Ubuntu 11.10 - 这种情况发生在我的两台不同摄像头的机器上)和OpenCV 2.3.1。
答案 0 :(得分:0)
我能解决这个问题的一种方法是使用 CV ::的DestroyWindow() 在调用一个窗口后。如果您只是显示一系列图片,那么效果会很好,但如果您正在显示视频,效果不会很好。