2016-10-26 125 views
1

我有我的Python程序結束這兩個聲明:cv2.waitKey(0)不工作,OpenCV的3.1.0,Mac OS X中10.11.6,巨蟒2.7.12

cv2.waitKey(0) 
cv2.destroyAllWindows() 

不知何故CV2 .waitKey(0)不工作,沒有響應鍵盤輸入0,結束我的程序我不得不關閉我的Mac終端窗口。

我嘗試以下來解決這個問題

if cv2.waitKey(0) & 0xFF == ord('q'): 
    break 

然後我得到這個消息:外循環

不知道什麼是錯的「休息」: 的SyntaxError。我正在使用Macbook Air,Mac OS X 10.11.6 請幫忙。

感謝

回答

1

只是要清楚,waitKey(0)並不意味着鍵盤輸入「0」將終止程序。這意味着您的程序將無限期地等待您在執行下一行代碼之前按下按鍵。

waitKey(30)表示程序將等待30毫秒讓您按下一個鍵,然後它會繼續。

至於'break' outside loop錯誤,從根本上講,您使用'break'關鍵字 a'for'或'while'循環中僅停止循環。所以,你需要確保你打電話「磨合」,如果有涉及您的代碼中的循環,就像這樣:

while True: 
     #do your thing 
     if cv2.waitKey(0) & 0xFF == ord('q'): 
      break #this loop will break if you press 'q', else it'll wait 

說,有你的程序中沒有循環,那麼你更換一個「休息」聲明'return'語句

1

如果沒有完整的代碼,不太確定,但'break'外部循環可能是因爲縮進?