web-dev-qa-db-ja.com

cv2.imshow()がカーネルをクラッシュさせる

私はJupyter Notebooksを介して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

何がうまくいかないのでしょうか?

14
Mike de H

現在、コードの動作を説明できませんが、以下のコードを使用して上記の動作を実現できます。

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

AWSでcv2.imshowを使用して画像を表示するには、X11転送を有効にして、グラフィックをサーバーで実行し、ローカルに表示できるようにする必要があります。これは、-Yオプションを指定してssh-ingすることで実行できます。

ssh -Y username@hostname

画像が大きい場合は、-Cを使用してデータを圧縮する必要もあります。

ssh -Y -C username@hostname

ノートブックの画像を表示している間は、AWSへのSSH接続に使用するターミナルを開いたままにする必要があります。

3
A Kruger