要避免关闭OpenCV窗口,你可以使用以下代码示例:
import cv2
def show_image():
img = cv2.imread('image.jpg')
cv2.imshow('Image', img)
# 等待键盘输入,参数为0表示一直等待直到键盘输入
key = cv2.waitKey(0)
# 如果按下的是ESC键,关闭窗口
if key == 27:
cv2.destroyAllWindows()
else:
# 如果按下的是其他键,重新调用函数显示图像
show_image()
# 调用函数显示图像
show_image()
在这个示例中,我们定义了一个函数show_image()
来显示图像。我们使用cv2.imshow()
来显示图像,并且使用cv2.waitKey(0)
等待键盘输入。如果按下的是ESC键(键码为27),则关闭窗口;否则,重新调用show_image()
来显示图像。
这样做的好处是,当按下ESC键时,窗口关闭,否则保持窗口打开并等待下一个键盘输入。这样你就可以避免窗口意外关闭。
请注意,在使用cv2.imshow()
显示图像之后,你可能还需要调用cv2.destroyAllWindows()
来确保所有的窗口都被正确关闭。