2016-04-09 8 views
1

Ich habe gerade begonnen, OpenCV mit Python für Raspberry Pi 3 zu lernen. Ich schrieb einen einfachen Code für namedWindow(). Das Problem ist destroyWindow() funktioniert nicht so, wie ich es erwarte. Das "TEST" -Fenster ist immer noch da. Was ist falsch mit dem folgenden Code?cv2.destroyWindow() funktioniert nicht wie erwartet

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

Sie möchten vielleicht [diesen Link] (http://stackoverflow.com/questions/6116564/destroywindow-does-not-close-window-on-mac-using-python-and-opencv) überprüfen. – Aenimated1

+0

Bewegen Sie das destroyWindow ("TEST") aus der Schleife. –

+0

Als ich zuletzt mit 'destroyWindow' gearbeitet habe, musste ich nicht nur ein paar verschiedene Aufrufe von' waitKey' vor und nach dem 'destroyWindow' (zwei vor, fünf nach) setzen, sondern auch einen' cvWindowThread' starten kurz bevor ich das 'namedWindow' erstellt habe. Dann habe ich 'std :: terminate()' an diesem Ende aufgerufen, da der Thread nicht richtig geschlossen wurde (bedenken Sie, das war in C++, Python könnte die Threads besser behandeln). –

Antwort

0

Hier ist, was in der Regel funktioniert für mich, so weit das WAITKEY geht:

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

, die eine bitweise ist und mit dem WAITKEY Eingang und 11111111, die den UTF-8-Wert für den Schlüssel sollen gleich. Ich habe das auf This Loop getestet. Hoffe das hilft.

Verwandte Themen