Open In App
Related Articles

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

Improve Article
Improve
Save Article
Save
Like Article
Like

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
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 03 Jan, 2023
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials