前回は、コマンドラインに「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とは、色の表し方の1つ
Rは赤(Red)、Gは緑(Green)、Bは青(Blue) 赤、緑、青の3色の光を混ぜることで色んな色を表現します

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')

ソースコードを修正したら再度プログラムを実行しましょう。

実行すると次のように正しい色で表示されます。

終わりに

今回は、画像をプログラムで読み取り、画像を表示するプログラムを作成しました。次回は、今回作成したプログラムの詳細な説明を行います。

2件のコメント

  1. ピンバック: Python入門 -プロジェクトを作って動かそう- – りゅう先生のIT学び場

  2. ピンバック: AI入門-MNISTのデータセットを知ろう- – りゅう先生のIT学び場

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です