OpenCV, imread の使い方

2021年3月6日

はじめに

 OpenCV のimreadを使った画像読み込みについてまとめた。

とりあえず関数を試してみたい方

実験用プログラム OpenCV_test の GitHubリポジトリ
URL
https://github.com/iryachi/OpenCV_test
実行ファイルだけ
https://github.com/iryachi/OpenCV_test/releases
使い方
https://iryachi.stars.ne.jp/opencv_test_imple/

imread関数について

Mat cv::imread (const String & filename, int flags = IMREAD_COLOR )         

引数

filenameString&ファイル名読み込む画像のファイルパス, ファイル名
flagsint読み込みパラメータ後述

返り値 Mat

読み込んだ画像データ。

読み込みパラメータ flagsについて (enum cv::ImreadModes)

IMREAD_UNCHANGED8bit 画像読み込み。
画素チャンネル数(カラー or グレー)は自動判別。
IMREAD_GRAYSCALE8bit グレースケール画像読み込み。
カラーもグレースケール化。
IMREAD_COLOR 3チャンネルカラー画像読み込み。bit数の指定なし。
グレースケールも3チャンネル化。(デフォルト動作)
IMREAD_ANYDEPTH bit数 自動判別。
IMREAD_ANYCOLOR 画素チャンネル数 自動判別。
IMREAD_REDUCED_GRAYSCALE_2グレースケール 1/2 サイズ。
IMREAD_REDUCED_COLOR_2カラー 1/2 サイズ。
IMREAD_REDUCED_GRAYSCALE_4グレースケール 1/4 サイズ。
IMREAD_REDUCED_COLOR_4カラー 1/4 サイズ。
IMREAD_REDUCED_GRAYSCALE_8グレースケール 1/8 サイズ。
IMREAD_REDUCED_COLOR_8カラー 1/8 サイズ。
IMREAD_IGNORE_ORIENTATION画像の Orientation 属性を無視する。
IMREAD_LOAD_GDALGDAL ライブラリ使用。
flag 組み合わせ例

IMREAD_COLOR | IMREAD_ANYDEPTH
  3チャンネルカラー画像でビット数は読み込むファイルに依存。
IMREAD_REDUCED_GRAYSCALE_4 | IMREAD_IGNORE_ORIENTATION
  グレースケール 1/4 サイズで Orientation属性無視して読み込む。

終わりに

読み込むだけなら、IMREAD_UNCHANGED でいいのかなと思う。その後の処理は困るかも。
GDAL はとりあえず扱わない。