Jupyter Notebookで画像を表示させよう!その前にハマる落とし穴・・・

超初心者向け

自分が保存している画像をJupyter Notebookで表示させる方法を紹介します

僕はただこれだけのことなのに、むちゃくちゃつまづきました

つまづきポイントとその回避策含めて説明いたします

まず画像ファイルの置いてある場所を指定する必要があります

指定方法には二つあって「絶対パス」か「相対パス」のどちらかで指定します

絶対パスは最上位の場所から指定したパスで、相対パスはカレントフォルダ(今いるフォルダ)を起点として指定したパスになります

Jupyter Notebookでカレントフォルダを知るコマンドは以下です

%pwd

入力すると以下のように表示されます

文頭に”%”をつけてコマンド入力する方法はマジックコマンドと呼ばれるもので、Jupyter Notebook上に簡単な記述で色々なことをすることができます(カレントフォルダが\\と二重で表記されている点に注意してください後述します)

Dドライブに置いた”Lenna.bmp”という画像を表示する例で説明します

pythonのプログラムは以下です。numpyとmatplotlibをインポートして使用します。%matplotlib inlineと表記するとJupyter Notebookの中に画像を表記できます(これもマジックコマンドですね)

今回画像の場所は絶対パスで表現しています。相対パスで表記する場合はカレントフォルダ移動して表記する必要あるのでまた今度説明します。

ファイルのパスを知りたい場合は、ファイル上でShiftキーを押しながら右クリックしてください。そうするとパスのコピーという項目が出てきます。コピーしたパスを貼り付けると以下になります。

“D:\200611ブログ作成\200627画像表示\Lenna.bmp”

ただしここに落とし穴があって、このパスをそのままプログラム上に貼り付けて実行するとエラーになります(そのようなファイルはありませんと注意される)

pythonの文字列の中で改行やタブなどの特殊な文字を記述したい場合エスケープシーケンスを使って記述する必要があります。Windowsの環境では\と文字の組み合わせでエスケープシーケンスを表します。つまりpythonの文中で\を表記しようとすると\\と記述しなければなりません。それがただパスをコピーして貼り付けたときにエラーが発生した理由です。python中では以下のように記入してください。コードの拡大も載せておきます(\はWindowsでは\と表示されます)

“D:\\200611ブログ作成\\200627画像表示\\Lenna.bmp”

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

img = plt.imread('D:\\200611ブログ作成\\200627画像表示\\Lenna.bmp')

plt.imshow(img)

プログラミングをしているとこういった細部に重大な意味が隠れているというのはほんと多いので注意深くならないと駄目ですね(^^♪

このLennaの画像というのは画像処理の世界ではサンプル画像としてめちゃくちゃ有名で、よく登場します。元画像はPLAYBOYという雑誌からスキャンされているので全体写真はちょっとセクシーだったりします。このモデルさんは画像処理の世界であまりに有名になったので画像処理学会の50周年記念大会に招待されたそうです。(その時にはだいぶおばちゃんになっていたようですが・・・)

コメント

タイトルとURLをコピーしました