HighGUI リファレンス マニュアル
最終変更者: 怡土順一, 最終変更リビジョン: 448, 最終変更日時: 2008-12-24 00:28:23 +0900 (水, 24 12月 2008)
- シンプルGUI(Simple GUI)
- 画像の読み込みと保存(Loading and Saving Images)
- ビデオ入出力(Video I/O)
- その他の関数とシステム関数(Utility and System Functions)
画像の読み込みと保存(Loading and Saving Images)
cvLoadImage
ファイルから画像を読み込む
/* 8 ビット,カラーまたはグレースケール.- 将来廃止される予定なので,CV_LOAD_IMAGE_ANYCOLOR を使用すること */
#define CV_LOAD_IMAGE_UNCHANGED -1
/* 8 ビット,グレースケール */
#define CV_LOAD_IMAGE_GRAYSCALE 0
/* CV_LOAD_IMAGE_ANYDEPTH と併用されない限り 8 ビット,カラー */
#define CV_LOAD_IMAGE_COLOR 1
/* 任意のデプス,グレー */
#define CV_LOAD_IMAGE_ANYDEPTH 2
/* CV_LOAD_IMAGE_UNCHANGED と同等.
ただし,CV_LOAD_IMAGE_ANYDEPTH と併用可能 */
#define CV_LOAD_IMAGE_ANYCOLOR 4
IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR );
- filename
- 読み込むファイル名.
- flags
- 読み込む画像がカラー/グレースケールのどちらか,とデプスを指定する.
カラー/グレースケールの指定は,読み込まれた画像を 3 チャンネル(CV_LOAD_IMAGE_COLOR)に変換するか,
1チャンネル(CV_LOAD_IMAGE_GRAYSCALE)に変換するか,あるいは入力画像(CV_LOAD_IMAGE_ANYCOLOR)のままにしておくかを決める.
デプスの指定は,読み込まれた画像を,以前のバージョンの OpenCV で行われたように一つのカラーチャンネルに対して 8ビットに変換するか,入力画像のままにしておくかを決める.CV_LOAD_IMAGE_ANYDEPTH が渡された場合に取りうるピクセルフォーマットは, 8 ビット符号無し整数,16 ビット符号無し整数,32 ビット符号付き整数,32 ビット浮動小数点数である.
渡されたフラグが衝突する場合,小さい値を持つフラグが優先される. 例えば, CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR というフラグの場合は, 画像は 3 チャンネルとして読み込まれる. CV_LOAD_IMAGE_ANYCOLOR は,CV_LOAD_IMAGE_UNCHANGED と等価であるが, CV_LOAD_IMAGE_ANYCOLOR には,CV_LOAD_IMAGE_ANYDEPTH と併用できるという利点がある. よって,CV_LOAD_IMAGE_UNCHANGEDは今後利用すべきではない.
出来る限り忠実に画像を読み込みたい場合は, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR を指定する.
関数 cvLoadImage は,指定されたファイルから画像を読み込み,その画像のポインタを返す. 現在サポートしているファイルフォーマットは次のようになる.
- Windows bitmaps - BMP, DIB;
- JPEG files - JPEG, JPG, JPE;
- Portable Network Graphics - PNG;
- Portable image format - PBM, PGM, PPM;
- Sun rasters - SR, RAS;
- TIFF files - TIFF, TIF;
- OpenEXR HDR images - EXR;
- JPEG 2000 images - jp2.
cvSaveImage
画像をファイルに保存する
int cvSaveImage( const char* filename, const CvArr* image );
- filename
- ファイル名.
- image
- 保存する画像.
関数 cvSaveImage は,画像を指定したファイルに保存する. 画像フォーマットは,filename の拡張子により決定される(cvLoadImage を参照). この関数で保存できるのは,8 ビット 1チャンネル,あるいは 8 ビット3 チャンネル('BGR' の順)画像だけである. フォーマットやデプス,チャンネルの順序などが異なる場合は,保存する前に cvCvtScale と cvCvtColor を使って画像を変換するか,あるいは汎用的な関数 cvSave を利用して XML/YAML フォーマットで保存すること.