勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

OpenCVやってみる - 24. Jupyter notebook使ってみた

コマンドプロンプト上でずっとやっているのも大変なので、Jupyter notebookを使ってみました。
見た目もよくなりそう。

Jupyter notebook 使い方

Anacondaをインストールすると、一緒にJupyter notebookが入ってきます。
Windows10環境で使っていますが、検索バーに入力すると出てきました。

f:id:nokixa:20211119032426p:plain:w300

起動すると、いつも使っているブラウザが開きます。
デフォルトではWindowsのユーザディレクトリが開くようです。

f:id:nokixa:20211119032816p:plain:w400

適当な作業ディレクトリを作って移動、New > Python3 と選択すると、新しいノートブックが作成されて開きます。

f:id:nokixa:20211119033030p:plain:w400

f:id:nokixa:20211119033239p:plain:w400

コードを書いて実行できたり、結果の画像もインラインで表示できたりします。
コードを後から書き直して再実行もOK。
なんだかいい感じです。

f:id:nokixa:20211119033410p:plain:w400

はてなブログ

はてなブログにどう貼り付けようかと考えましたが、markdownでのダウンロードが可能だったので、ダウンロードしてコピペすることにしました。

f:id:nokixa:20211119035101p:plain:w400

以下貼り付けします。
画像表示の部分だけは元のmarkdownソースをいじってあります。

~ここから~


使用する画像

春のパン祭り台紙画像を今までにいくつか撮っているので、これらを使います。

import cv2
img1 = cv2.imread('harupan_190428_1.jpg')
img2 = cv2.imread('harupan_190428_2.jpg')
img3 = cv2.imread('harupan_200317_1.jpg')
img4 = cv2.imread('harupan_210227_2.jpg')
img5 = cv2.imread('harupan_210402_1.jpg')
img6 = cv2.imread('harupan_210402_2.jpg')
img7 = cv2.imread('harupan_210414_1.jpg')
img1 = cv2.resize(img1, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img2 = cv2.resize(img2, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img3 = cv2.resize(img3, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img4 = cv2.resize(img4, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img5 = cv2.resize(img5, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img6 = cv2.resize(img6, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
img7 = cv2.resize(img7, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)

Jupyter notebook上に、matplotlibで画像表示してみます。

%matplotlib inline
from matplotlib import pyplot as plt
plt.imshow(img1),plt.title('Image1')

(<matplotlib.image.AxesImage at 0x1d180edf748>, Text(0.5, 1.0, 'Image1'))

f:id:nokixa:20211119040930p:plain

きちんとノート内に画像が表示されています。
matplotlibだとRGBフォーマット前提で表示するので、変換が必要。

以下で色フォーマットを直したうえで全画像表示します。

plt.subplot(241), plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)), plt.title('Image1')
plt.subplot(242), plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)), plt.title('Image2')
plt.subplot(243), plt.imshow(cv2.cvtColor(img3, cv2.COLOR_BGR2RGB)), plt.title('Image3')
plt.subplot(244), plt.imshow(cv2.cvtColor(img4, cv2.COLOR_BGR2RGB)), plt.title('Image4')
plt.subplot(245), plt.imshow(cv2.cvtColor(img5, cv2.COLOR_BGR2RGB)), plt.title('Image5')
plt.subplot(246), plt.imshow(cv2.cvtColor(img6, cv2.COLOR_BGR2RGB)), plt.title('Image6')
plt.subplot(247), plt.imshow(cv2.cvtColor(img7, cv2.COLOR_BGR2RGB)), plt.title('Image7')
plt.show()

f:id:nokixa:20211119040928p:plain

サブプロットタイトルと軸目盛がかぶっちゃったけど気にしない。


~ここまで~

残念なことに見た目はJupyter notebookそのままにはなりませんね。

ここまで

今回はここまでにします。
次回は台紙領域検出をしていきたいと思います。


Jupyter notebook参考

Jupyter Notebook を使ってみよう – Python でデータサイエンス

JupyterNotebook上に画像を表示する2つの方法 | yamagablog

Jupyter Notebookの基本操作とショートカットキー | Python入門

jupyter notebookのサンプルコードをブログに貼り付ける方法を調べた - 子供の落書き帳 Renaissance