Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python imshow()使内核崩溃_Python_Amazon Web Services_Opencv_Ipython_Jupyter - Fatal编程技术网

Python imshow()使内核崩溃

Python imshow()使内核崩溃,python,amazon-web-services,opencv,ipython,jupyter,Python,Amazon Web Services,Opencv,Ipython,Jupyter,我在Jupyter笔记本上运行OpenCV,每当我试图运行cv2.imshow()时,内核就会崩溃,没有错误消息或有用的提示——只是一个简单的提示 内核似乎已死亡。它将自动重新启动。 这是我正在运行的代码 import cv2 input = cv2.imread('images/input.jpg') cv2.imshow('Hello World', input) cv2.waitKey(0) cv2.destroyAllWindows() 当我运行下面的程序时,代码可以工作(尽管不同)

我在Jupyter笔记本上运行OpenCV,每当我试图运行cv2.imshow()时,内核就会崩溃,没有错误消息或有用的提示——只是一个简单的提示

内核似乎已死亡。它将自动重新启动。

这是我正在运行的代码

import cv2 
input = cv2.imread('images/input.jpg')
cv2.imshow('Hello World', input)
cv2.waitKey(0)
cv2.destroyAllWindows()
当我运行下面的程序时,代码可以工作(尽管不同)

%matplotlib inline
from matplotlib import pyplot as plt
import cv2
image = cv2.imread('images/input.jpg')
plt.imshow(image)
plt.show()
仅供参考,我正在AWS上使用完全未经更改的BitFusion副本


知道哪里出了问题吗?

我现在无法解释代码的行为,但您可以使用下面的代码实现上述行为

%matplotlib inline
from matplotlib import pyplot as plt
import cv2
image = cv2.imread('images/input.jpg')
plt.imshow(image)
plt.show()

要在AWS上使用
cv2.imshow
查看图像,您需要启用X11转发,以便可以在服务器上运行图形并在本地显示。这可以通过使用
-Y
选项ssh-ing来完成:

ssh -Y username@hostname
如果图像较大,还需要使用
-C
压缩数据:

ssh -Y -C username@hostname

只要您正在显示笔记本中的图像,用于ssh到AWS的终端就需要保持打开状态。

p.S.我正在通过运行在Windows 7上的Chrome访问JN。Matplotlib可以渲染成图像,然后作为HTML笔记本的一部分显示。OpenCV便捷GUI实用程序纯粹是客户端--
imshow
在GUI窗口中显示图像,
waitKey
泵送消息循环等等。在服务器端运行它们没有任何意义。我也遇到了同样的问题。下面的答案帮助了我。如果它仍然崩溃,请确保没有任何语法错误。这不是问题所在。cv2。imshow()不起作用。使用plt无助于解决这个问题。