繁体   English   中英

cv2.imshow() 崩溃 Kernel

[英]cv2.imshow() crashes Kernel

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

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

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

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

%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 的终端就需要保持打开状态。

所以对我来说,这个问题是通过放置一个while循环来解决的,当你按下键盘上的键D时结束

import cv2 as cv
img = cv2.imread('Images/1.jpg')
while True: 
    cv.imshow('ImageDisplay',img)
    if cv.waitKey(20) & 0xFF == ord('d'):
        break
cv.destroyAllWindows()

更新 numpy !!

pip install -U numpy --user

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM