cv2.imshow()的图片关闭时出现not responding(没有回应),电脑环境崩溃 图+真相+解决办法

Table of Contents

出问题的代码

现象

解决办法

完整版代码

参考文章

补充说明


出问题的代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("F:/images/lena.jpg", cv2.IMREAD_COLOR)
cv2.imshow("img", img)
cv2.waitKey()

现象

之前按任意键即可退出的cv2.imshow()的图片,现在出问题了……

估计是最近电脑被我折腾得太厉害……

只能尝试手动关闭cv2.imshow()的图片,会出现not responding(没有回应),然后环境崩溃,如下图:

cv2.imshow()的图片关闭时出现not responding(没有回应),电脑环境崩溃 图+真相+解决办法_第1张图片

 

结果只能去任务栏(工作列)那右击->关闭窗口,出现下图:再选择“结束处理程序”。

cv2.imshow()的图片关闭时出现not responding(没有回应),电脑环境崩溃 图+真相+解决办法_第2张图片

网上找到了别人提供的解决办法,实验下还是有效果的,贴在下方:

解决办法

1. 使用cv2.destroyAllWindows()关闭图片

2. 或者像下面按Esc键再使用cv2.destroyAllWindows()关闭图片

注意:要退出时需要将鼠标点击cv2.imshow的窗口上才能按Esc键退出。

k = cv2.waitKey(0) # waitkey代表读取键盘的输入,括号里的数字代表等待多长时间,单位ms。 0代表一直等待
if k == 27:     # 键盘上Esc键的键值
   cv2.destroyAllWindows()

3. cv2.destroyAllWindows()如果失效的话,可以在cv2.imshow()前加cv2.startWindowThread(),如下:

cv2.startWindowThread()     # 方法三
cv2.imshow("img", img)      # 显示图片

完整版代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("F:/images/lena.jpg", cv2.IMREAD_COLOR)    # 从磁盘加载图像
cv2.startWindowThread()     # 方法三
cv2.imshow("img", img)      # 显示图片
# 方法一:按任意键直接销毁所有打开的HighGUI窗口
cv2.waitKey(0)  # 等待用户输入,按任意键即可
cv2.destroyAllWindows()
# 方法二:按Esc键退出
# k = cv2.waitKey(0) # waitkey代表读取键盘的输入,括号里的数字代表等待多长时间,单位ms。 0代表一直等待
# if k == 27:     # 键盘上Esc键的ASCII值为27
#    cv2.destroyAllWindows()

参考文章

python opencv imshow 图片不显示 not responding

cv2.destoryAllWindows()无效的解决方法

补充说明

其实之前的代码出现这个问题是因为运行方式不同造成的。

如果换成在控制台下直接运行,不会出现宕机,是可以按任意键退出的,如下图:

出现这个问题是因为我在PyCharm中点击右键->运行,如下图:

cv2.imshow()的图片关闭时出现not responding(没有回应),电脑环境崩溃 图+真相+解决办法_第3张图片

你可能感兴趣的:(Python,OpenCV)