cv2.imshow()崩溃了内核

时间:2017-05-12 17:24:46

标签: python amazon-web-services opencv ipython jupyter

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

  

The Kernel appears to have died. It will restart automatically.

这是我正在运行的代码......

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副本。

https://aws.amazon.com/marketplace/pp/B01EYKBEQ0?ref=cns_srchrow

知道可能出现什么问题吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

ssh -Y username@hostname

如果图像较大,则还需要使用-C压缩数据:

ssh -Y -C username@hostname

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