Python OpenCV销毁窗口不';我不能在Ubuntu上工作。如何正确关闭窗口?

Python OpenCV销毁窗口不';我不能在Ubuntu上工作。如何正确关闭窗口?,python,ubuntu,opencv,python-idle,Python,Ubuntu,Opencv,Python Idle,在以下代码中,DestroyWindow或DestroyAllWindows无法关闭ShowImage打开的窗口。当我试图通过单击关闭按钮来关闭它时,窗口被挂起。窗户关上后,整个门都关上了 import cv image = cv.LoadImage("../lena.bmp", 0) cv.NamedWindow("test") cv.ShowImage("test", image) cv.WaitKey() cv.DestroyWindow("test") #or cv.DestroyAl

在以下代码中,DestroyWindow或DestroyAllWindows无法关闭ShowImage打开的窗口。当我试图通过单击关闭按钮来关闭它时,窗口被挂起。窗户关上后,整个门都关上了

import cv
image = cv.LoadImage("../lena.bmp", 0)
cv.NamedWindow("test")
cv.ShowImage("test", image)
cv.WaitKey()
cv.DestroyWindow("test")  #or cv.DestroyAllWindows()
我正在Ubuntu 12.04 LTS上使用OpenCV 2.4.2和Python 2.7


我是否做错了什么,如何关闭ShowImage创建的窗口?

我认为应该使用数字作为参数调用cv.WaitKey,0或n>0,其中n>0指定等待的毫秒数

cv.WaitKey(0)将无限期地等待键盘按下,然后返回字符输入。如果您还没有尝试过,按键盘按钮应该会关闭窗口。

试试以下方法:

c = cv.WaitKey(27)
if c == 27:
   cv.DestroyAllWindows("Test")
   break

谢谢你的建议。但无论我将WaitKey()更改为WaitKey(0)或WaitKey(1),窗口都保持不变。同样的代码在Windows7下运行良好。我想知道OpenCV是否有其独特的方式来创建和关闭Ubuntu下的窗口?或者OpenCV不支持最新的Ubuntu系统12.04 LTS?你能解释一下这会做什么吗?根据我的理解,这将等待按键27毫秒,然后返回-1(或键码)。为什么要将
c
与27进行比较,而不是对该键代码使用更具描述性的常量名称?您是否找到了解决方案或打开了一个bug?我已经厌倦了在Linux上处理OpenCV问题。请参阅以下问题: