単一画像の表示 display(), cv2.imshow(), plt.imshow()
pythonで画像を表示する方法を紹介します。
開発環境はjupyter notebook、言語はpythonです。
まず下記サイトでjupyter notebookをインストールし、各モジュールをインストールしてください。
https://jupyter.org/
今回の画像・コード一式はgoogle driveにも保存しておりますので、必要に応じてお使いください。
今回は上記のソースコードの保存ディレクトリと同じフォルダに保存している、cutlet.jpgという画像を相対パスで読み込んでいます。
ちなみにcutlet.jpgはこんな画像です。
ここで引用符""をつけなければ、cutlet.jpgが変数として扱われてしまうので、文字列として認識されるよう、"cutlet.jpg"という形で記述しています。
また引用符"cutlet.jpg"を下記のような方法で記載することで、絶対パスに変更することもできます。
最終的にはImage()内にパスを書くことで画像を読み込み、display()で表示するという流れになります。
実行するとnotebook上に下記のように画像が表示されます。
その後のcv2.imshow()、cv2.waitKey()、cv2.destoyAllWindows()は、画像の表示とウィンドウの消去のためのコマンドなのですが、全てが揃わないとエラーになるので、3つで1セットだと思ってください。
これを実行するとPC上に新しいウィンドウが表示され、0を押すことでウィンドウを消すことができます。
ウィンドウサイズが非常に大きく、縮小もできない(改善方法はありそうですが・・・)ためかなり不便です。
今回の画像ではもはやお茶しか表示されていません・・・
matplotlibは本来グラフを表示するためのモジュールですが、画像を表示することも可能です。
opencvで読み込んだRGB画像はBGR(Blue, Green, Red)の順に並ぶため、cv2.cvtColor()という関数を用いて、並び順をRGBに変換しています。
BGR2RGBは、BGR to RGBという変換ということを意味しているのだと思います。
このプログラムを実行すると、下記のように画像が表示されます。
デフォルトでは、表示サイズが非常に小さいですが、縦軸、横軸が表示されているのが非常に便利です(今回はfig = plt.figure(1, (12., 12.))で少し表示サイズを大きくしています)。
matplotlibの細かな使い方も後々記事にしたいと思います。
以上よりpython、特にjupyter notebook上で、画像の表示が可能となりました。
これで今回のプログラミング紹介は終了です。
地図を記載しているのでぜひ訪れてみてください。
開発環境はjupyter notebook、言語はpythonです。
まず下記サイトでjupyter notebookをインストールし、各モジュールをインストールしてください。
https://jupyter.org/
今回の画像・コード一式はgoogle driveにも保存しておりますので、必要に応じてお使いください。
今回作成したコード
#1:モジュールのインポート import cv2 from IPython.display import Image, display import matplotlib.pyplot as plt %matplotlib inline #2:displayによる表示 img1_path = "cutlet.jpg" display(Image(img1_path)) #3:opencvによる表示 img1 = cv2.imread(img1_path) cv2.imshow('image.jpg',img1) cv2.waitKey(0) cv2.destroyAllWindows() #4:matplotlibによる表示 img_r = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB) fig = plt.figure(1, (12., 12.)) plt.imshow(img_r)
処理の解説
2.displayによる表示
img1_path = "cutlet.jpg" display(Image(img1_path))img1_pathというのは表示したい画像のディレクトリ(保存場所)を示しています。
今回は上記のソースコードの保存ディレクトリと同じフォルダに保存している、cutlet.jpgという画像を相対パスで読み込んでいます。
ちなみにcutlet.jpgはこんな画像です。
cutlet.jpg
また引用符"cutlet.jpg"を下記のような方法で記載することで、絶対パスに変更することもできます。
img1_path = "C:/Users/ユーザー名/Pictures/cutlet.jpg"※パスの区切りには/を使うこと。また半角文字推奨
最終的にはImage()内にパスを書くことで画像を読み込み、display()で表示するという流れになります。
実行するとnotebook上に下記のように画像が表示されます。
display()による表示
3.opencvによる表示
img1_path = "cutlet.jpg" img1 = cv2.imread(img1_path) cv2.imshow('image.jpg',img1) cv2.waitKey(0) cv2.destroyAllWindows()まずcv2.imread()という関数に画像のパスを書き込んで、画像を読み込みます。
その後のcv2.imshow()、cv2.waitKey()、cv2.destoyAllWindows()は、画像の表示とウィンドウの消去のためのコマンドなのですが、全てが揃わないとエラーになるので、3つで1セットだと思ってください。
これを実行するとPC上に新しいウィンドウが表示され、0を押すことでウィンドウを消すことができます。
ウィンドウサイズが非常に大きく、縮小もできない(改善方法はありそうですが・・・)ためかなり不便です。
今回の画像ではもはやお茶しか表示されていません・・・
cv2.imshow()による表示
4.matplotlibによる表示
img1_path = "cutlet.jpg" img1 = cv2.imread(img1_path) img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB) fig = plt.figure(1, (12., 12.)) plt.imshow(img2)
matplotlibは本来グラフを表示するためのモジュールですが、画像を表示することも可能です。
opencvで読み込んだRGB画像はBGR(Blue, Green, Red)の順に並ぶため、cv2.cvtColor()という関数を用いて、並び順をRGBに変換しています。
BGR2RGBは、BGR to RGBという変換ということを意味しているのだと思います。
このプログラムを実行すると、下記のように画像が表示されます。
デフォルトでは、表示サイズが非常に小さいですが、縦軸、横軸が表示されているのが非常に便利です(今回はfig = plt.figure(1, (12., 12.))で少し表示サイズを大きくしています)。
matplotlibの細かな使い方も後々記事にしたいと思います。
matplotlibによる表示
以上よりpython、特にjupyter notebook上で、画像の表示が可能となりました。
これで今回のプログラミング紹介は終了です。
今回使用した画像:ソースカツどん/田村食堂
長野県は伊那市の名物だそうです。地図を記載しているのでぜひ訪れてみてください。
コメント
コメントを投稿