この記事ではWSL(Windows Subsystem for Linux)の環境にJupyter Notebookの環境を構築する手順、およびJupyter Notebook上でOpenCVの動作確認を行う手順について解説する。
尚、WSL環境の構築方法については以下の構築手順を参照下さい。
https://sidefire-engineer.com/node-red入門/
以降の手順からは、WSLにUbuntuの環境を構築した想定で解説していきます。
Jupyter Notebookのインストール
WSLのUbuntu環境を立ち上げ、以下を実行しJupyter Notebookをインストールします。
sudo apt install jupyter-core
OpenCVのインストール
今回は Notebook上でOpenCVの動作確認をしたいので、OpenCVのインストールを行います。
pip install opencv-python
ついでに、描画向けツールであるmatplotlibもインストールしておきます。
pip install matplotlib
Jupyter Notebookの起動
WSLの任意のディレクトリ上で以下を実行します。
jupyter notebook
上記を実行するとURLが表示されるため、任意のブラウザのアドレスバーにコピペします。
ブラウザ上に以下の表示がされれば、無事Jupyter Notebookが起動できていることが分かります。
OpenCVの動作確認
必要なライブラリをインポートします。
import cv2
import matplotlib.pyplot as plt
まずは画像の読み込みをやってみます。
読み込むための画像ですが、今回はkaggle向けのデータセットから準備します。尚、kaggleとは機械学習のコンペ向けサービスを提供しているプラットフォームです。
https://www.kaggle.com/datasets
上記データセットから、猫の画像をcat.jpegとして保存し、Notebookを起動したディレクトリに配置させtます。
読込みにはcv2.imread()を使います。また、読み込んだ画像を表示するため、plt.imshow()を使用します。
Notebook上で以下を実行します。
img = cv2.imread('cat.jpeg')
plt.imshow(img)
扱うデータをその画面上で即座に確認できるところがJupyter Notebookの強みです。機械学習でデータを扱う用途では非常に便利ですね。
上記実行後、以下のような猫が表示されました。
これは、元データの色の配列がBGR(青、緑、赤)であるからで、Matplotlibのplt.imshow()ではRGB(赤、緑、青)であることが原因のようです。
そこで、cv2.cvtColor()を使って色配列の変換を試してみます。
img = cv2.imread('cat.jpeg')
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img2)
これで、無事元の色と同じ状態の猫が表示されました。
pythonファイルの保存
Notebook上で書いたコードを名前を付けて保存する場合は、画面上部の「Untitled1」となっている部分を変更します。
ここでは「notebook_test」として保存してみます。
そうすると、notebook_test.ipynbというファイルが生成されています。Notebook上で再度編集したい場合はこの.ipynbファイルを開きます。
尚、このipynbはjsonファイルとなっており、はソースの情報だけでなく、Jupyter Notebookが適切に取り扱うための情報も含まれているようです。
そのため、pythonコードそのものではありません。pythonコードとして保存したい場合は、[FILE]-[Download as]-[Python(.py)]を選ぶとpythonコードとして保存されます。
まとめ
この記事ではWSL環境でのJupyter Notebookの導入・および起動方法、そしてNotebook上でのOpenCVの動作確認について解説しました。
OpenCVの使い方の詳細説明については今後の記事で説明していきたいと思います。