2017-11-01 1 views
-1

Ich bin Anfänger und mit Spyder für meine OpenCV 3 Python-Projekt. Die Programme laufen gut, aber wenn das Ausgabefenster gestartet wird, reagiert es nicht mehr, nachdem das Programm beendet wurde (bestimmte Bedingungen wie 'esc' oder 'Q' key) und ich muss den Kernel jedes Mal neu starten, um den Code auszuführen. Ich verwende OpenCV 3.1 und Python 3.5.Spyder: Was ist die beste Python IDE für OpenCV 3. Spyder Ausgabefenster reagiert nicht mehr

EDIT: Ich benutze Mac mit Mac OS 10.13.

+0

nicht abstürzen verwende ich auch Spyder aber hatte noch nie mit dem IDE-Probleme selbst. Wahrscheinlich stimmt etwas mit deinem Code nicht. Poste deinen Code hier, damit wir ihn bewerten können. –

+0

Ich verwende den Beispielcode der Dokumentation. Der Code läuft gut, er öffnet das Fenster normal und tut, was es soll. Aber das Fenster schließt sich nicht nach der Abbruchbedingung oder wenn ich den Kernel manuell stoppe. – Coddy

+0

Das hört sich nicht nach einem Problem mit Spyder an. Verknüpfen Sie den Code, damit wir sehen können, ob wir das Problem replizieren können. –

Antwort

0

Ich könnte Ihr Problem replizieren, nachdem ich einen anderen Schlüssel außer denen, die durch den Code behandelt werden, getroffen habe. Zum Beispiel, das Drücken der ESC-Taste oder der S-Taste funktionierte einwandfrei, aber jede andere Taste stürzte die GUI ab.

import numpy as np 
import cv2 
img = cv2.imread(r"C:\Users\mathesn\Downloads\IMAG1825.jpg",0) 
cv2.imshow('image',img) 
k = cv2.waitKey(0) 
if k == 27:   # wait for ESC key to exit 
    cv2.destroyAllWindows() 
elif k == ord('s'): # wait for 's' key to save and exit 
    #save file here 
    cv2.destroyAllWindows() 

Um dies zu vermeiden, fügen Sie Code anderer Drücken von Tasten durch und behandeln nur das Hinzufügen eines else Block.

import numpy as np 
import cv2 
img = cv2.imread(r"C:\Users\mathesn\Downloads\IMAG1825.jpg",0) 
cv2.imshow('image',img) 
k = cv2.waitKey(0) 
if k == 27:   # wait for ESC key to exit 
    cv2.destroyAllWindows() 
elif k == ord('s'): # wait for 's' key to save and exit 
    #save file here 
    cv2.destroyAllWindows() 
else: 
    cv2.destroyAllWindows() 

Da alle Schlüsselereignisse jetzt behandelt werden, sollte die GUI

+0

Mein Problem ist das sekundäre UI-Fenster, das sich öffnet, schließt sich nicht von selbst und es friert ein, selbst wenn ich den erforderlichen Schlüssel wie 'esc' drücke oder 's'. Der Code hört auf, in dem Spyder auszuführen. – Coddy

+0

Welches sekundäre UI-Fenster? der einzige, der geöffnet wird, ist das 'Bild' Fenster –

+0

Ja das Bildfenster. Tut mir leid, dass ich nicht geklärt habe. Mit sekundär meinte ich anderes als das Terminalausgabefenster. – Coddy