画像の読み込みと表示
画像の読み込み
画像を読み込むには、imread
関数を使用します。 image read (画像を読み込む)という意味です。 その前にimport
を忘れないようにしましょう。
cv
(cv2
をcv
という名前で使っている)というライブラリのimread
関数を使用するという意味で、先頭にcv2.
とつけて関数を呼び出します。 これで、example.png
という画像を読み込むことができます。 多くの場合、img
(imageの略)やim
などという名前の変数に入れます。
画像のパスの指定はよくつまづくので注意しましょう。 基本的には、コードのあるファイルからの相対的な位置を指定します(相対パス)。 上記のコードの場合は、コードファイルと同じ階層(フォルダ)に画像が存在しています。
画像の表示
画像の表示には、imshow
関数を使用します。
以下のようなウインドウが表示されます。
バツボタンでウインドウを閉じると終了です。 2行目のwaitKey
関数は、キー入力を待つ関数です [1]。引数に0
を指定した場合は、バツボタンが押されるまで画像を表示し続けます。 1以上の数字を指定した場合は、その数字のミリ秒だけ待ち、終了します。 waitKey
を入れない場合は、すぐに画像が閉じられてしまうため、imshow
とセットで用いられます。
matplotlib
の使用
matplotlib
という、プロットなどのための可視化ライブラリでも、OpenCV
で扱う画像を表示させることができます [4]。
Code
注意点としては、OpenCVの画像は色のチャンネルがBGRであるのに対し [5]、matplotlibではRGBの順番で色を表現するため、変換が必要であることです。 色の変換のために、cvtColor
関数を使用しました。一つ目の引数は元の画像で、二つ目に変換方法を指定します。 今回はBGRからRGBに変換したため、cv.COLOR_BGR2RGB
を指定しました。2はToの意味で、左側に元の色、右側に変換後の色を指定します。 一覧はこちらから見られます。
matplotlibを使う利点は、
- プロットと同じように画像を表示できる
- プロットのように座標を確認したり、サイズが一目でわかる
- matplotlib付属のツールバーを使えば、拡大や保存などが簡単にできる [6]
などが挙げられます。
個人的には、画像処理解析の際にはmatplotlibを用いて処理の途中経過の確認などをしており、あまりimshow
関数は使用しておりません。