2017-06-30 6 views
0

Ich folgte einem Tutorial und versuchte, das Programm zu beenden, wenn ich q drücke, aber das funktioniert nicht, es beendet, egal welchen Schlüssel ich drücke, das ist der Code :openCV waitKey() kann keine richtige Tastatureingabe erhalten

twi = cv2.imread('large.png') 
cv2.namedWindow('image', cv2.WINDOW_NORMAL) 
cv2.imshow('image', twi) 
key = cv2.waitKey(0) 
if key == ord('q'): 
    cv2.destroyAllWindows() 

Und ich habe versucht, &0xFF hinzuzufügen: mit ihm

key = cv2.waitKey(0)&0xFF 

immer noch nicht funktioniert, was ist falsch? Kann ich es reparieren?

============= aktualisieren ============

Ich habe print(key) zu, dass, wenn q drücken, variable key ist 113 und ord('q') ist 113 entweder, kann nicht verstehen, warum es nicht ...

============= ============= Gelöst

funktioniert

(Scheint, dass ich vergesse, wie if funktioniert ...)

+2

„es egal beendet, welche Taste gedrückt ich“ zeigen uns den Rest des Codes, ist es verließ gleich danach Linien gezeigt? Dann ist es klar, warum es beendet wird, weil der Code in die if-Anweisung eintritt, sieht "oh es ist nicht 'q', also mach einfach weiter" und dann erreicht es das Ende deines Codes und beendet sich. – Micka

+2

@Micka Gosh Ich muss im Moment dumm sein ... Jetzt verstehe ich ... Danke! –

Antwort

4

Kontinuierlich cv2.waitKey(0) rufen, wenn es nicht den Schlüsselwert für die q die Schlüssel funktionieren könnte:

while cv2.waitKey(0) != ord('q'): 
    pass 
cv2.destroyAllWindows() 
Verwandte Themen