logo
Loading...

destroyAllWindows無法作用 - Cupoy

您好:在D1課程中,顯示圖片,cv2.imshow('rgb',img)cv2.waitKey(0)...

opencv,destroyAllWindows

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:10
    Jeffrey
    贊同數:1
    不贊同數:0
    留言數:1

    關閉特定的視窗時,可以改用cv2.destroyWindow加上視窗名稱,關閉指定的視窗

  • 2019/11/22 上午 00:53
    Chen-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 會有更詳細的資訊