opencv cv2.destroyAllWindows() 无法响应
我有一个64位的Ubuntu系统,正在IDLE里运行代码。最近遇到了OpenCV卡住的问题,图像虽然显示出来了,但我必须强制关闭这个图像窗口。于是我参考了这个帖子—— 使用OpenCV的waitKey()函数的其他按键
import cv2
img = cv2.imread('sof.jpg') # load a dummy image
while(1):
cv2.imshow('img',img)
k = cv2.waitKey(3000) & 0xff
if k==32: # SpaceBar key to stop
break
elif k==-1: # normally -1 returned,so don't print it
continue
else:
print k # else print its value
但是还是不行,图像又卡住了,我只能手动关闭它。
2 个回答
0
在代码中加上 cv2.waitKey(0) 和 cv2.destroyAllWindows(),但是如果你在 Unix 系统上用 Python 笔记本运行 OpenCV 程序,会遇到一个问题。这会导致系统卡死,所以每次执行代码时你都需要重启内核。
我有一个替代的方法,可以防止你的系统卡死。
步骤:
- - 从 Python 笔记本复制代码,创建一个新的文件名为 filename.py,然后粘贴代码进去。
- 打开终端
- 输入 cd path/to/file(这里的 path/to/file 是你文件的路径)
- 输入 source activate VirtualEnvironment(这里是激活你的虚拟环境)
- 输入 python filename.py(运行你的 Python 文件)
这样就可以直接从终端运行代码了。希望这对你有帮助。
0
尝试一下:
k = cv2.waitKey(3000) & 0xff