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(没有回应),然后环境崩溃,如下图:

 

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

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

解决办法

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中点击右键->运行,如下图:

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值