OpenCv使用時的小問題

我們使用OpenCV的時候總會遇到一些小問題,我這裏總結一下並提出一些較好解決的解決方法,如果大家有更好的解決方法歡迎在評論中給出

1.imshow圖像後點擊窗口的叉號,圖像不顯示了但程序並未自動繼續運行或結束

較好解決方法:

def show(title, img, t=1000, esc=True):
    """
    該方法實現的功能爲:
    當esc=False的時候,窗口顯示t ms自動關閉;
    而當esc=True的時候,程序會檢測窗口是否存在和是否按下ESC鍵,
    若手動關閉了窗口或按下ESC鍵關閉窗口,程序將繼續運行或者結束。
    """
    cv2.namedWindow(title, 0)
    cv2.imshow(title, img)
    if esc:
        while cv2.waitKey(100) != 27:
            if cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE) <= 0:
                break
    else:
        cv2.waitKey(t)
    cv2.destroyWindow(title)

2.imshow圖像的時候,因爲圖像過大而顯示不完全

較好的解決方法:

def show(title, img, t=1000, esc=True):
    """
    該方法實現的功能爲,當esc屬性爲False的時候,窗口顯示tms自動關閉;
    而當esc爲True的時候,我們會檢測窗口是否存在和是否按下ESC鍵,
    若手動關閉了窗口或按下ESC鍵關閉窗口,程序將繼續運行。
    """
    cv2.namedWindow(title, 0)
    # 先創建一個顯示圖像的窗口,它的屬性設爲0,就可以手動調整圖像顯示的
    # 大小了,而且圖像是完整顯示的
    cv2.imshow(title, img)
    if esc:
        while cv2.waitKey(100) != 27:
            if cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE) <= 0:
                break
    else:
        cv2.waitKey(t)
    cv2.destroyWindow(title)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章