2017-06-30 116 views
0

我跟着一個教程,並試圖使程序退出,當我按q,但這並不奏效,無論我按哪個鍵,這是代碼:openCV waitKey()無法得到正確的鍵盤輸入

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() 

而且我試圖添加&0xFF

key = cv2.waitKey(0)&0xFF 

仍然沒有工作,有什麼錯呢?我可以修復它嗎?

=============更新============

我添加print(key)到的是,按壓q時,可變key113,和ord('q')也是113要麼無法理解爲什麼它不起作用...

=============解決=============

(似乎我忘了if是如何工作的......)

+2

「它退出不管按什麼鍵,我按下」我們展示的代碼的其餘部分,它從那之後,退出顯示的行?然後清楚它爲什麼退出,因爲代碼輸入了if語句,看到「哦,不是'q',所以繼續」,然後到達代碼的結尾並退出。 – Micka

+2

@Micka Gosh此刻我一定很蠢......現在我明白了......謝謝! –

回答

4

不斷呼籲cv2.waitKey(0)當它不爲q鍵返回鍵的值可能工作:

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