今回は、Python で画像を取り扱う方法を記載したいと思います。
OpenCVのインストール
まずは、画像を取り扱うための、パッケージをダウンロードします。Python 用の画像処理パッケージには、主に、OpenCV と Pillow の2種類があります。ここでは、OpenCV を取り上げます。その理由は、C言語の頃から開発が行われている、長年の実績があるパッケージだというところです。OpenCV をメインに使用し、足りない機能を Pillow で補っていく、というやり方がお勧めです。
それでは、インストールです。インストールには、Conda コマンドを使用します。Conda の環境に関しては、以前掲載した、下記のブログを参照してください。
Anaconda prompt を起動してください。お好みの、仮想環境に移動します。私の場合は、(py37_jpnb) という環境がありますので、下記のコマンドを実行します。
conda activate py37_jpnb
実行後の画面は、下図の様になります。行の先頭の表記が変わり、仮想環境に入ったことがわかります。

次に、OpenCV のインストールです。下記のコマンドを入力してください。
conda install opencv
実行中に、キー入力を求められますので、”y” を入力して進みます。下図の画面になれば、インストールは完了です。やたらに簡単ですね!以前は、Conda コマンドが OpenCV に対応しておらず、インストールが結構大変でした。技術は、日々進化しています。

同時に、画像を表示するためのパッケージもインストールしておきましょう。コマンドは、下記になりますので、コマンドプロンプト上で実行してください。
conda install matplotlib
OpenCV による、簡単な画像処理プログラミング
インストールが完了したら、次に簡単な画像処理プログラミングをしてみましょう。Python 開発統合環境の一つである、Jupyter notebook を起動しましょう。 Jupyter notebook については、下記の記事を参考にしてください。
起動するには、下記のコマンドを実行します。
jupyter notebook
すると、下図の様に、開発統合環境が起動します。

新しいファイルを作りましょう。右上の “New” をクリック、”python 3(ipykernel)” をクリックします。下記の、新しいタブが表示されます。

ここからが、プログラミングの始まりです。まずは、OpenCV を使えるおまじないです。下記のコードを入力して、実行しましょう。実行は、”Shift” キーを押しながら、”Enter” キーを押す、です。
import cv2
実行結果は下記です。初回の実行には、数秒の時間がかかります。実行中は、”In [*]” という表示で、実行が完了すると、”In [1]” という表示に変わります。

素材の画像を準備しましょう。下記の画像を使います。試したい場合は、画像をダウンロードして、自分のローカルディスクに保存してください。

ファイル名は、”img_for_test.jpg” です。先ほどのディレクトリに、保存します。(下図)

プログラミング画面に戻り、ファイルを開くコードの記述です。
img = cv2.imread('img_for_test.jpg')
実行結果です。

つぎに、読み込んだ画像を表示します。そのために、表示用モジュールを読み込みます。
import matplotlib.pyplot as plt
なんだかわからない文章ですが、おまじないだと思って、慣れてください。実行結果です。

つぎに、画像の表示です。下記コードになります。
plt.imshow(img); plt.show()
実行結果が下図です。

なんと、赤鬼のはずだったのが、青鬼が表示されてしましました!原因は、OpenCV の読み出し関数を使っていることでした。matplotlib の読み出し関数を使うことで、正常なカラー表示ができるようになります。
# これは使っちゃだめ。
img = cv2.imread('img_for_test.jpg')
# こちらを使う。
img = plt.imread('img_for_test.jpg')
もう一度、実行してみましょう。読み込みと、表示を一気に行ってみます。コマンドは、下記です。
img = plt.imread('img_for_test.jpg')
plt.imshow(img); plt.show()
実行結果が下図です。無事に赤鬼が表示されました。

まとめ
今回は、画像の表示まで行いました。次回は、画像の様々な処理の仕方を書いていきます。次回も、購読よろしくお願いします。
コメント