NumPyとは?
今回はPythonのNumPyを使った画像処理を紹介していきたいと思います。
NumPyは、プログラミング言語Pythonにおいて数値計算を効率的に行うための拡張モジュールである。効率的な数値計算を行うための型付きの多次元配列(例えばベクトルや行列などを表現できる)のサポートをPythonに加えるとともに、それらを操作するための大規模な高水準の数学関数ライブラリを提供する。
すなわち、行列を扱うのに便利なライブラリです。画像も縦横の升目に値が格納される行列として表現されるため、NumPyを使うといろいろ便利なことがあります。
どんなことができるのか??
NumPyには実に様々な機能が実装されています。その中の一例を紹介していくことにします。なお、以下のコードを実行するためには、OpenCVとNumPy、matplotlibがインストールされている必要があります。
via pixabay.com
このネズミの画像を使っていくことにします。
まずは画像を表示するだけのコードです
OpenCVのimread関数で画像を読み込んだ場合、NumPyが使われて情報が保持されます。
今回はグレースケールで画像を読み込みます。imread関数の第二引数に0を指定することでグレースケールで読み込まれます。
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('001.jpg' ,0) plt.imshow(img) plt.colorbar() plt.show()
plot.py
matplotlibでグレースケール画像を描画させると、自動的に疑似カラーで描画してくれます。この場合、明るいところが赤く、暗いところが青く表示されていることがわかりますね。カラーバーはplt.colorbar()の部分で描画することを指定しています。