skip to Main Content

Here is a simple script:

import cv2

img = cv2.imread("img.png", 0)
cv2.imshow("Test", img)
print("Before")
cv2.waitKey(0)
print("After")

After closing the Test window, the output of terminal was like:

$ python test.py
Before

It seems that cv2.waitKey(0) blocks the program and I cannot even kill the process by typing ctrl+c in the terminal. What’s wrong with it?

PS: It works properly before but today there is some system upgrade being done and this kind of issue happened. I’m using ubuntu 18.04.

2

Answers


  1. Chosen as BEST ANSWER

    After checking issues of opencv, I do find the same problem that has already been posted:https://github.com/opencv/opencv/issues/20822.

    It is a bug due to the Qt Gui backend and the issue is still open.


  2. waitKey() is supposed to break/return once all windows have been closed, and also return immediately if no windows are currently open. This is regardless of the desired amount of delay.

    On Windows 10, I can’t reproduce what you describe. That is to say, it’s probably specific to your environment.

    Your described behavior is probably a bug due to bad interaction with a window manager/GUI toolkit.

    Please check https://github.com/opencv/opencv/labels/category%3A%20highgui-gui for any obvious previous reporting.

    Before opening a new bug, make sure it’s reproducible and comes with a description of the environment that is required to reproduce it. That includes all versions of everything you think is relevant, including OpenCV’s version.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search