<button id="ssm6u"><optgroup id="ssm6u"></optgroup></button>
  • 跳轉至

    HighGUI窗口

    概要

    這節課,主要講的如何創建一個HighGUI的窗口,以及如何設置窗口的一些屬性

    keywords 創建窗口 HighGUI 尺寸 寬高比 窗口版本

    namedWindow

    我們剛剛創建了一個窗口, 名字叫做image_win

    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win')
    

    我們也可以傳入一些參數(flags) 來實現窗口的一些設定。

    flags其實是一個整數, 用這個二進制的特定的, 來表示某個選項是A選項(二進制 0)還是B選項(二進制1)。

    設置選項1: 窗口大小

    WINDOW_NORMAL 1 代表允許拖動窗口變換窗口大小。

    WINDOW_AUTOSIZE 0 默認 根據屏幕跟圖片的大小, 自動縮放。 不允許手動變化窗口大小。

    設置選項2: 設置寬高比

    WINDOW_FREERATIO 256 不固定寬高比。

    WINDOW_KEEPRATIO 0 默認固定寬高比, 也就是窗口拖拽縮放, 必須保持原來的寬高比。

    設置選項3 : 窗口GUI版本

    WINDOW_GUI_NORMAL 16 舊版窗口組件。 不支持statusbar跟toolbar。 就是窗口上方的狀態欄,工具欄。

    WINDOW_GUI_EXPANDED 0 默認 新版本功能增強的GUI窗口。

    我們可以通過按位或的方式,通過一個參數, 同時傳入多個選項的值。

    flags的值默認為0 , 也就相當于WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED

    所以上面的語句等同于:

    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win', flags=cv2.WINDOW_AUTOSIZE | cv2.WINDOW_KEEPRATIO | cv2.WINDOW_GUI_EXPANDED)
    

    如果我想設定,窗口可以自由拖動, 那么我就需要這么寫

    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win',  flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO | cv2.WINDOW_GUI_EXPANDED)
    

    又因為另外兩個選項均為默認選項, 值為0, 所以寫法等同于

    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win',  flags=cv2.WINDOW_NORMAL)
    

    如果我想讓這個窗口,即可以拖放又可以不固定寬高比(ratio), 那我其實應該這樣寫。

    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win', flags=cv2.WINDOW_NORMAL | cv2.WINDOW_FREERATIO)
    

    如果窗口什么也不顯示, 窗口其實是一個占位符(Placeholder)的作用.

    blank_window.py

    import numpy as np
    import cv2
    
    # 創建一個名字叫做 image_win的窗口
    cv2.namedWindow('image_win', cv2.WINDOW_NORMAL)
    
    # windows下啥也不放置
    
    # 檢測按下的按鈕
    print("請按任意鍵關閉窗口")
    
    # 如果沒有下面的waitKey, 窗口會一閃而過, 后面會講解
    key_pressed = cv2.waitKey(0)
    
    # cv2.destroyAllWindows()
    cv2.destroyWindow('image_win')
    

    0120_blank_windows.png


    韩国精品无码一区二区三区,精品无码一区二区三区AV,欧洲丰满美熟女乱又伦AV,亚洲午夜久久久影院伊人