2016-04-09 210 views
1

我刚刚开始学习用于Raspberry Pi 3的Python OpenCV。 我为namedWindow()编写了一个简单的代码。问题是destroyWindow()不能像我期望的那样工作。 “测试”窗口仍然存在。下面的代码有什么问题?cv2.destroyWindow()不能按预期工作

import cv2 
import sys 

if __name__ == '__main__': 
    cv2.namedWindow("TEST") 
    while True: 
     key = cv2.waitKey(5) 
     if key == 27: 
      print "ESC pressed..." 
      cv2.destroyWindow("TEST") 
      break 
    sys.exit() 
+0

你可能想看看[这个链接](http://stackoverflow.com/questions/6116564/destroywindow-does-not-close-window-on-mac-using-python-and-opencv)。 – Aenimated1

+0

将destroyWindow(“TEST”)移出循环。 –

+0

当我最后一次使用'destroyWindow'时,我不得不在'destroyWindow'前后两次调用'waitKey'(前两个,后五个),我还必须启动一个'cvWindowThread'就在我创建'namedWindow'之前。然后,我在末尾调用了'std :: terminate()',因为线程没有正确关闭(注意,这是在C++中,python可能更好地处理线程)。 –

回答

0

这里就是平时对我的作品尽可能的waitKey云:

if cv2.waitKey(1) & 0xFF == 27: 
    break 
cv2.destroyWindow("TEST") 

这是一个位,并与waitkey输入和11111111应该等于UTF-8值的关键。我在This Loop上测试了这个。希望这可以帮助。