画像を読み込み、可視化する方法

Pythonでは画像処理も簡単にできます。

OpenCVというモジュールをインポートすると、画像処理が可能に。

変数の中に画像を格納することや、画像を簡単に二次元のnumpyアレイにしてくれ、非常に扱いやすくなります。

本日は、その基礎の基礎。

画像を読み込み、可視化しましょう。

目的の画像

イラスト屋の画像を使わせてもらっています。この画像で、柄を二値化したいとします。

画像1


かわいいですね。

必要なモジュールをインポート

さて、モジュールのインポート。私はJupiternotebookを使っているため、cv2だけでなくその他もインポート。

%pylab inline
import cv2
import matplotlib.pyplot as plt
plt.gray()

一応、モジュールの確認もしておきましょう

・%pylab inline:plt.show()を書かなくても画像が見られる等、扱い易いため

・cv2:OpenCV(画像解析に必要)

・matplotlib.pyplot : Jupiternotebookでグラフや画像を表示するもの

・plt.gray(): 白黒画像が変色ナシで可視化できる

サラッと流してみました。気になる方は詳細をググってみてください。

分からなければ、飛ばすのも一つです。


画像を読み込み(カラー・グレイスケール)、確認

カラー画像を読み込みます。

image = cv2.imread("/irasutoya.jpg")

imageという変数の中に、画像を読み込みます。

要するに、imageという変数を加工すれば、画像が編集されます

尚、(”○○/○○.jpg”)の○○の中には、画像が入っている場所を指定してください。

カラー画像の可視化方法です。可視化は、

plt.imshow(写真を入れた変数の名前)
plt.show()

でできます。

今回、『%pylab inline』を先にモジュールと一緒に指定しているため、plt.show()がなくても表示されます。

plt.imshow(image)
plt.show()

実行結果:

無題

あら。先ほどと色が違う・・

cv2で読み込んだ画像はBGRフォーマットになっており、matplotlibではRGBフォーマットで読み込まれるためmatplotlibに渡す前にRGBに変更が必要です。

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

で変換するか、可視化の際に、

plt.imshow(cv2.cvtColor(image,cv2.COLOR_BGR2RGB))

で確認するか・・

どちらでも大丈夫です。

グレースケールで読み込む

グレースケール、白黒のことです。

白黒で読み込む際にも、cv2.imread()を使います。

ちなみに、cv2というモジュールを使った、.imread()メソッド関数ということです。後ろに0を足すと、グレースケールで取得できます。

image_g = cv2.imread("/irasutoya.jpg",0)

shift+ENTERで実行した後、以下で表示してみましょう。

plt.imshow(image_g)
plt.show()

実行結果:

無題

うん。大丈夫です。

あれっ・・思ってたんと違う・・

という緑と黄色の場合は、モジュール群に書いた、

plt.gray()

がないのでは。足しておくとちゃんと白黒になります。

この記事が気に入ったらサポートをしてみませんか?