OpenCV 4.5.3(日本語機械翻訳)
モジュール | 関数
Image file reading and writing

モジュール

C API
Flags used for image file reading and writing
iOS glue
MacOS(OSX) glue

関数

CV_EXPORTS_W Mat cv::imread (const String &filename, int flags=IMREAD_COLOR)
ファイルから画像を読み込みます。[【詳解】(英語]
CV_EXPORTS_W bool cv::imreadmulti (const String &filename, CV_OUT std::vector< Mat > &mats, int flags=IMREAD_ANYCOLOR)
複数ページの画像をファイルから読み込みます。[【詳解】(英語]
CV_EXPORTS_W bool cv::imreadmulti (const String &filename, CV_OUT std::vector< Mat > &mats, int start, int count, int flags=IMREAD_ANYCOLOR)
ファイルからマルチページイメージのイメージをロードします。[【詳解】(英語]
CV_EXPORTS_W size_t cv::imcount (const String &filename, int flags=IMREAD_ANYCOLOR)
与えられたファイルに含まれる画像の数を返します.[【詳解】(英語]
CV_EXPORTS_W bool cv::imwrite (const String &filename, InputArray img, const std::vector< int > &params=std::vector< int >())
関数 imwrite は,画像を指定されたファイルに保存します。[【詳解】(英語]
static CV_WRAP bool cv::imwritemulti (const String &filename, InputArrayOfArrays img, const std::vector< int > &params=std::vector< int >())
CV_EXPORTS_W Mat cv::imdecode (InputArray buf, int flags)
メモリ上のバッファから画像を読み込みます。[【詳解】(英語]
CV_EXPORTS Mat cv::imdecode (InputArray buf, int flags, Mat *dst)
CV_EXPORTS_W bool cv::imencode (const String &ext, InputArray img, CV_OUT std::vector< uchar > &buf, const std::vector< int > &params=std::vector< int >())
画像をメモリバッファにエンコードします.[【詳解】(英語]
CV_EXPORTS_W bool cv::haveImageReader (const String &filename)
指定された画像が OpenCV でデコード可能であれば,真を返します.[【詳解】(英語]
CV_EXPORTS_W bool cv::haveImageWriter (const String &filename)
指定されたファイル名の画像が OpenCV でエンコードできる場合,真を返します.[【詳解】(英語]

詳解

関数詳解

haveImageReader()

CV_EXPORTS_W bool cv::haveImageReader ( const String & filename )

指定された画像が OpenCV でデコード可能であれば,真を返します.

引数
filename 指定した画像のファイル名

haveImageWriter()

CV_EXPORTS_W bool cv::haveImageWriter ( const String & filename )

指定されたファイル名の画像が OpenCV でエンコードできる場合,真を返します.

引数
filename 指定した画像のファイル名

imcount()

CV_EXPORTS_W size_t cv::imcount ( const String & filename,
int flags = IMREAD_ANYCOLOR
)

与えられたファイルに含まれる画像の数を返します.

関数 imcount は,複数ページの画像の場合はページ数を,単一ページの画像の場合は1を返します。

引数
filename 読み込まれるファイルの名前.
flags 以下の値を取ることができるフラグです.cv::ImreadModes, デフォルトではcv::IMREAD_ANYCOLOR.

imdecode() [1/2]

CV_EXPORTS_W Mat cv::imdecode ( InputArray buf,
int flags
)

メモリ上のバッファから画像を読み込みます。

関数 imdecode は、メモリ内の指定されたバッファから画像を読み込みます。バッファが短すぎたり,無効なデータを含んでいたりすると,この関数は空の行列を返します (Mat::data==NULL ) を返します。

参照cv::imreadサポートされているフォーマットの一覧やフラグの説明については,こちらを参照してください。

覚え書き
カラー画像の場合,デコード後の画像は,チャンネルがB G Rの順になっています。
引数
buf バイトの配列またはベクトルを入力します。
flags のフラグと同じです.cv::imreadを参照してください。cv::ImreadModes.

imdecode() [2/2]

CV_EXPORTS Mat cv::imdecode ( InputArray buf,
int flags,
Mat * dst
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
buf
flags
dst デコードされた行列の出力プレースホルダ(オプション).これは,同じサイズの画像に対してこの関数が繰り返し呼ばれる場合に,画像の再配置を節約することができます.

imencode()

CV_EXPORTS_W bool cv::imencode ( const String & ext,
InputArray img,
CV_OUT std::vector< uchar > & buf,
const std::vector< int > & params = std::vector< int >()
)

画像をメモリバッファにエンコードします.

関数 imencode は,画像を圧縮し,その結果に合わせてサイズが変更されたメモリバッファに格納します.参照cv::imwriteサポートされているフォーマットの一覧やフラグの説明については,こちらを参照してください。

引数
ext 出力形式を定義するファイルの拡張子。
img 書き込まれる画像。
buf 圧縮された画像に合わせてサイズ変更された出力バッファ。
params フォーマット固有のパラメータ。参照cv::imwriteおよびcv::ImwriteFlags.

imread()

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

ファイルから画像を読み込みます。

関数 imread は,指定されたファイルから画像を読み込み,それを返します。ファイルが存在しない,不適切なパーミッションである,サポートされていない,あるいは無効なフォーマットであるなどの理由で)画像を読み込めない場合,この関数は空の行列を返します (Mat::data==NULL ) を返します。

現在,以下のファイル形式がサポートされています.

  • Windowsビットマップ - *.bmp, *.dib (常時サポート)
  • JPEGファイル - *.jpeg, *.jpg, *.jpe (以下のページを参照)備考セクションを参照)。
  • JPEG 2000ファイル - *.jp2 (注意事項を参照)備考セクションを参照)。
  • ポータブルネットワークグラフィックス - *.png (注意事項参照)備考セクションを参照)。
  • WebP - *.webp (注)備考セクションを参照)。
  • ポータブルイメージフォーマット - *.pbm, *.pgm, *.ppm *.pxm, *.pnm (常時サポート)
  • PFM ファイル - *.pfm (See the way)備考セクションを参照)。
  • 太陽ラスタ - *.sr, *.ras (常にサポートされています)
  • TIFFファイル - *.tiff, *.tif (以下のページを参照)備考セクションを参照)。
  • OpenEXR 画像ファイル - *.exr (詳細はこちら備考セクションを参照)。
  • Radiance HDR - *.hdr, *.pic (常にサポートされています)
  • GDALでサポートされているラスターおよびベクターの地理空間データ(下記参照備考セクションを参照)。
覚え書き
  • この関数は、ファイルの拡張子ではなく、内容によって画像の種類を判断します。
  • カラー画像の場合,デコード後の画像は,チャンネルがB G Rの順になっています。
  • IMREAD_GRAYSCALEを使用した場合、利用可能であればコーデックの内部グレースケール変換が使用されます。の出力とは異なる場合があります。cvtColor()
  • Microsoft Windows* OSやMacOSX*では,OpenCVのイメージに同梱されているコーデック(libjpeg, libpng, libtiff, libjasper)がデフォルトで利用されます。そのため,OpenCV は常に JPEG, PNG, TIFF を読み込むことができます.MacOSXでは,MacOSXのネイティブな画像リーダを利用するオプションもあります.しかし,現在のところ,MacOSXに組み込まれたカラーマネージメントのために,これらのネイティブ画像ローダは,異なるピクセル値の画像を与えることに注意してください.
  • Linux*,BSDフレーバー,その他のUnix系オープンソースOSでは,OpenCVはOSイメージに含まれるコーデックを探します.コーデックをサポートするために,関連するパッケージ(Debian* や Ubuntu* では,"libjpeg-dev" のような開発ファイルも忘れないでください)をインストールするか,CMake で OPENCV_BUILD_3RDPARTY_LIBS フラグをオンにしてください.
  • を設定した場合はWITH_GDALフラグをtrueに設定し、CMakeでIMREAD_LOAD_GDALを使用してイメージをロードした場合はGDALドライバが使用され、以下のフォーマットをサポートします。ラスター,ベクター.
  • 画像ファイルにEXIF情報が埋め込まれている場合、EXIFの方向性が考慮され、それに応じて画像が回転します。IMREAD_IGNORE_ORIENTATIONまたはIMREAD_UNCHANGEDが渡されている場合を除き、EXIFの向きが考慮され、それに応じて画像が回転します。
  • PFM画像の浮動小数点値を保持するには、IMREAD_UNCHANGEDフラグを使用する。
  • デフォルトでは、ピクセル数は2^30より小さくなければなりません。システム変数OPENCV_IO_MAX_IMAGE_PIXELSで制限を設定できます。
引数
filename 読み込まれるファイルの名前.
flags 以下の値を取ることができるフラグです.cv::ImreadModes

imreadmulti() [1/2]

CV_EXPORTS_W bool cv::imreadmulti ( const String & filename,
CV_OUT std::vector< Mat > & mats,
int flags = IMREAD_ANYCOLOR
)

複数ページの画像をファイルから読み込みます。

関数 imreadmulti は,指定されたファイルからマルチページ画像を,以下のベクトルに読み込みます.Matオブジェクトに格納されます.

引数
filename 読み込まれるファイルの名前.
flags 以下の値を取ることができるフラグです.cv::ImreadModes, デフォルトではcv::IMREAD_ANYCOLOR.
mats のベクトルに変換します.Matオブジェクトのベクトルに変換します.
参照
cv::imread

imreadmulti() [2/2]

CV_EXPORTS_W bool cv::imreadmulti ( const String & filename,
CV_OUT std::vector< Mat > & mats,
int start,
int count,
int flags = IMREAD_ANYCOLOR
)

ファイルからマルチページイメージのイメージをロードします。

関数 imreadmulti は,指定されたファイルのマルチページイメージから,指定された範囲を以下のベクトルに読み込みます.Matオブジェクトに格納されます.

引数
filename 読み込まれるファイルの名前.
start 読み込みたい画像の開始インデックス
count Count 読み込む画像の数
flags 以下の値を取ることができるフラグです.cv::ImreadModes, デフォルトではcv::IMREAD_ANYCOLOR.
mats のベクトルに変換します.Matオブジェクトのベクトルに変換します.
参照
cv::imread

imwrite()

CV_EXPORTS_W bool cv::imwrite ( const String & filename,
InputArray img,
const std::vector< int > & params = std::vector< int >()
)

関数 imwrite は,画像を指定されたファイルに保存します。

関数 imwrite は、指定されたファイルに画像を保存します。画像のフォーマットは,ファイル名の拡張子に応じて選択されます(拡張子の一覧はcv::imreadを参照してください)。一般に,この関数を使って保存できるのは,8ビットのシングルチャンネルまたは3チャンネル(チャンネルオーダーが「BGR」)の画像のみですが,以下の例外があります.

  • PNG, JPEG 2000, TIFF フォーマットの場合は,16ビット符号なし(CV_16U)画像を保存できます.
  • 32ビット浮動小数点(CV_32F)画像は,PFM,TIFF,OpenEXR,Radiance HDR 形式で保存できます.3チャンネル(CV_32FC3)TIFF 画像は,LogLuv ハイダイナミックレンジエンコーディング(1ピクセルあたり4バイト)で保存されます.
  • アルファチャンネル付きのPNG画像もこの機能を使って保存できます。これを行うには,8ビット(あるいは16ビット)の4チャンネル画像BGRAを作成し,アルファチャンネルを最後に置きます。完全に透明なピクセルはアルファ値を0に、完全に不透明なピクセルはアルファ値を255/65535に設定します(以下のコードサンプルを参照)。
  • 複数の画像(ベクトルのMatのベクトル)は、TIFF形式で保存できます(下記のコードサンプルを参照)。

画像フォーマットがサポートされていない場合,画像は8ビット符号なし(CV_8U)に変換され,そのように保存されます.

フォーマットや深度,チャンネルの順番が異なる場合は,保存する前にMat::convertToおよびcv::cvtColorを使って変換してから保存します。または、ユニバーサルFileStorageI/O関数を使って、画像をXMLやYAML形式で保存することもできます。

以下のサンプルでは、BGRA画像の作成方法、カスタム圧縮パラメーターの設定方法、PNGファイルへの保存方法を示しています。また、複数の画像を1つのTIFFファイルに保存する方法も示しています。

引数
filename ファイルの名前
img (MatまたはベクトルのMat) 保存される画像。
params フォーマット固有のパラメータをペア(paramId_1, paramValue_1, paramId_2, paramValue_2, ... ...)でエンコードしたもの。cv::ImwriteFlags