destroyAllWindows無法作用
2019/11/21 下午 03:54
電腦視覺深度學習討論版
謝宗佑
觀看數:36
回答數:2
收藏數:1
opencv
destroyAllWindows
您好:
在D1課程中,顯示圖片,
cv2.imshow('rgb',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
這三行跑完圖片會出現,不過按了按鍵以後視窗不會關閉,
然後就會出現python就會一直繞圈圈。
在Jupyter裡面也沒有顯示任何錯誤,是哪邊出問題了呢?
回答列表
-
2019/11/21 下午 09:10Jeffrey贊同數:1不贊同數:0留言數:1
關閉特定的視窗時,可以改用
cv2.destroyWindow
加上視窗名稱,關閉指定的視窗 -
2019/11/22 上午 00:53Chen-Ming Yang贊同數:2不贊同數:0留言數:2
waitKey 其實是不斷刷新畫面,可以提供 delay 時間的設定 (ms)
waitKey(0) 就是不斷刷新畫面,所以就像是進入無窮回圈一樣
他會等待一個按鍵的事件
但你應該要寫根據按鍵事件做出的相對回應
你希望做到的應該是「按下任意鍵就觸發 destroyAllWindows」
這邊寫法應該會類似以下這種寫法
```
k = cv2.waitKey(0)
if k:
cv2.destropAllWindows()
```
更進一步,假如你想做的是「按下 ESC 觸發 destropAllWindows」
就可以寫 if key == 27: ...
Note: 每個按鍵事件其實都是回傳一個數字當作代表,像是 ESC 鍵會回傳 27,這邊有需要的話之後可以去查 opencv key event 會有更詳細的資訊