環境
Python 3.7.8
OpenCV 3.4.2
問題
通常であれば以下のコードで画像を表示し、適当なキーを押すとウィンドウが閉じます。しかし、閉じるボタン押した場合、ウィンドウは閉じるのですがpythonのプロセスは実行されたままになります。
open.py
import cv2
img = cv2.imread("lena.jpg")
# 画像を表示
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
解決方法
他の方の手法と基本的には同じなのですが、コードを少しだけ短くしたのと、従来通りすべてのキー入力にも対応させたのがオリジナリティです。
import cv2
img = cv2.imread("lena.jpg")
while(1):
cv2.imshow('img', img)
key = cv2.waitKey(100) & 0xff
if key != 255 or cv2.getWindowProperty('img', cv2.WND_PROP_AUTOSIZE) == -1:
cv2.destroyAllWindows()
exit()
同じことで困っている方の助けになればと思います。