画像の読み込みと表示
画像の読み込み
画像を読み込むには、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関数は使用しておりません。

