私は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
何がうまくいかないのでしょうか?
現在、コードの動作を説明できませんが、以下のコードを使用して上記の動作を実現できます。
%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
ノートブックの画像を表示している間は、AWSへのSSH接続に使用するターミナルを開いたままにする必要があります。