WSL2でGUIが使えるようになりました。画像を表示させてみました。

はじめに

以前 Jupyter Notebook を使ってWSL2で画像やグラフの表示をする方法を書きました。
touch-sp.hatenablog.com
新しいWindows 10 Insider Preview Build 21364GUIが使えるようになったので、今回はそちらを使って画像を表示させてみます。

準備

まずはWSL2をアップデータする必要があります。

wsl --update

次に、
pillowを使って画像を表示させるためには、画像表示のためのアプリのインストールが必要です。
imagemagickを使いました。

sudo apt install imagemagick

matplotlibを使って画像を表示させるためには、python3-tkのインストールが必要です。

sudo apt install python3-tk

環境によっては次のようにしないといけない場合もあります。
以下のエラーが出たら試してみてください(Python3.8の場合)

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
sudo apt install python3.8-tk

実行

pillowを使う場合

from PIL import Image
img = Image.open('test.jpg')
img.show()

matplotlibを使う場合

from matplotlib import pyplot as plt
from PIL import Image
import numpy as np
img = np.array(Image.open('test.jpg'))
plt.imshow(img)
plt.show()