前回は、コマンドラインに「Hello World!!」と出力しました。通常は、演算など基礎的な計算などから学習することが多いですが、目的の開発ができるまでの道のりは長いです。そこで、このブログでは、画像分類のAI開発に必要なものを中心にプログラミング を学習していきます。

必要なライブラリをインストールしよう
次のコマンドを順番に入力し、必要なライブラリをインストールをしよう
conda install numpy
conda install matplotlib
conda install -c conda-forge opencv
numpyのインストールの場合は、以下のようにインストールします


インストールが完了したら、残りのmatplotlibとopencvも同様にインストールしてください。
画像を表示のプログラムを書く準備をする
まずは、プログラムを書くようのPythonファイルを作成します。
「showimage」という名前のPythonファイルを作成します。

showimage.pyが追加されていることを追加します。

表示する画像を入れとくフォルダを作成します。
「data」フォルダを作成します。


dataフォルダに表示する画像を入れます。
今回は、以下の画像を表示します。真似してダウンロードして使用しても良いですし、好きな画像を用意しても良いです。ダウンロードする場合は、画像を右クリックしてダウンロードしてください。

画像をドラック&ドロップでdataフォルダに移動させます。


画像を表示するプログラムを書こう
ライブラリのインポートを行う。
import matplotlib.pyplot as plt
import cv2
画像を読み取る関数を作る。
def show_image(image_path):
"""
image_pathの画像を表示する関数
:param str image_path: 画像のパス
"""
image = cv2.imread(image_path)
plt.imshow(image)
plt.show()
画像を表示する関数を実行する。
if __name__ == '__main__':
show_image('./data/ryu.png')
完成したソースコード はこんな感じです。

cv2とは、OpenCVという画像操作などを行うライブラリです。cv2.imread関数の引数に画像のパスをセットすることで、画像を取得することができます。
matplotlibとは、図などを作成するライブラリです。plt.imshow関数にイメージ画像のデータをセットし、plt.show()で画像の表示を行います。
画像を表示してみましょう
showimage.pyを実行できるように設定しよう。

設定ができたら右上の「実行」ボタンを押してみましょう。
次のように、色が変な画像が表示されると思います。

なぜ色がおかしくなるのか?
まずは、色はどのようにできているかを知ろう!!Webなどでよく使われている「RGB」という色の表現方法を覚えましょう。

RGBでは0から255までの数字3つで色を表します。これをカラーコードと言います。
RGBのカラーコードでは、赤は「255 0 0」、緑は「0 255 0」、青は「0 0 255」となります。他の色だと、黄色は「255 255 0」、水色は「0 255 0」、紫は「255 0 255」です。
RGBのカラーコードごとの色を確認したい場合は、以下のようなサイトがあります。
https://www.peko-step.com/tool/tfcolor.html
OpenCVではRGBではなく、BGRで表される

青、緑、赤の順番になっています。そのため、画像を表示するときには、BGRからRGBに変換する必要があります。
BGRからRGBへ変換するソースコードは次のようになります。

修正後の全部のソースコードは以下の通りになります。
import matplotlib.pyplot as plt
import cv2
def show_image(image_path):
"""
image_pathの画像を表示する関数
:param str image_path: 画像のパス
"""
image = cv2.imread(image_path)
# 画像をBGR表現からRGB表現に変更する
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(image)
plt.show()
if __name__ == '__main__':
show_image('./data/ryu.png')
ソースコードを修正したら再度プログラムを実行しましょう。
実行すると次のように正しい色で表示されます。

終わりに
今回は、画像をプログラムで読み取り、画像を表示するプログラムを作成しました。次回は、今回作成したプログラムの詳細な説明を行います。
ピンバック: Python入門 -プロジェクトを作って動かそう- – りゅう先生のIT学び場
ピンバック: AI入門-MNISTのデータセットを知ろう- – りゅう先生のIT学び場