Open In App
Related Articles

OpenCV Python: How to detect if a window is closed?

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

OpenCV in Python provides a method cv2.getWindowProperty() to detect whether a window is closed or open. getWindowProperty() returns -1 if all windows are closed. This is one of the main problems we face while using the OpenCV package, sometimes it’s hard to detect whether the window is open or closed. when a user closes the window the method detects it.

Syntax: cv2.getWindowProperty(window_name, window_property)

parameters:

  • window_name : is the name of the window.
  • window_property : it’s the window property to retrieve. we use flags.

flags which we can use:

  • cv.2WND_PROP_VISIBLE : checks whether the window is visible and open.
  • cv2.WND_PROP_TOPMOST
  • cv2.WND_PROP_OPENGL
  • cv2.WND_PROP_ASPECT_RATIO
  • cv2.WND_PROP_AUTOSIZE
  • cv.WND_PROP_FULLSCREEN

Approach

  • We read an image and then display it, window name is also specified in the cv2.imshow() method. 
  • Then we use a while loop to wait till the user presses ESC (exit key) to destroy all windows. After the window is destroyed the loop is broken. 
  • We make one final check to see whether the window is closed using getWindowProperty(), which takes the name of the window and the flag as parameters. 
  • If the window is closed the method returns -1. 

In the below code as the window is closed it returns -1. even though the window is closed sometimes python doesn’t respond, using waitkey(1) closes the window instantly.

Python3

# importing packages
import cv2
  
# reading image
img = cv2.imread('sunset.jpeg')
cv2.imshow('sunset', img)
while True:
    
    # it waits till we press a key
    key = cv2.waitKey(0)
  
    # if we press esc
    if key == 27:
        print('esc is pressed closing all windows')
        cv2.destroyAllWindows()
        break
  
if cv2.getWindowProperty('sunset', cv2.WND_PROP_VISIBLE) < 1:
    print("ALL WINDOWS ARE CLOSED")
cv2.waitKey(1)

                    

Output:

esc is pressed closing all windows
ALL WINDOWS ARE CLOSED
-1

Last Updated : 03 Jan, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads