prevent from hangning in cv2.imshow()/cv2.waitkey (#145)

* prevent from hangning in cv2.imshow()/cv2.waitkey

case:
Window has been closed after cv2.imshow; cv2.waitKey;
expected behavior:
- continue program
actual  behavior:
- program hangs

This commit fixes it

* fix linter
pull/149/head
Korabelnikov Aleks 2019-11-17 12:16:45 +03:00 committed by Kai Chen
parent 8829ff0dfd
commit b480ee475f
1 changed files with 10 additions and 1 deletions

View File

@ -14,7 +14,16 @@ def imshow(img, win_name='', wait_time=0):
wait_time (int): Value of waitKey param.
"""
cv2.imshow(win_name, imread(img))
cv2.waitKey(wait_time)
if wait_time == 0: # prevent from hangning if windows was closed
while True:
ret = cv2.waitKey(1)
closed = cv2.getWindowProperty(win_name, cv2.WND_PROP_VISIBLE) < 1
# if user closed window or if some key pressed
if closed or ret != -1:
break
else:
ret = cv2.waitKey(wait_time)
def imshow_bboxes(img,