画像処理・認識 [画像のロード] [OpenCV]
「HighGUI」技術
画像をディスクからロードする
◆ 画像ファイルを読み込む関数
OpenCV | 関数名 | 書式、コメント |
1.x系 | cvLoadImage | IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR ) |
2.x系 | cv::LoadImage | IplImage* cv::LoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR ) |
cv::LoadImageM | LoadImageM(filename, iscolor=CV_LOAD_IMAGE_COLOR) ファイルから,CvMatとして画像を読み込む。 |
読み込む画像のカラーの種類
- CV_LOAD_IMAGE_COLOR 画像は,強制的に3チャンネルカラー画像として読み込む
- CV_LOAD_IMAGE_GRAYSCALE 画像は,強制的にグレースケール画像として読み込む
- CV_LOAD_IMAGE_UNCHANGED 画像は,そのままの画像として読み込む
ファイルフォーマット
- 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
読み込む画像がカラー/グレースケールのどちらか,とデプスを指定する. カラー/グレースケールの指定は,読み込まれた画像を 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 を指定する。
[opencv.jp document より引用]
デプスの指定は,読み込まれた画像を,以前のバージョンの 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 を指定する。
[opencv.jp document より引用]
◆ 画像ファイルを書き込む関数
OpenCV | 関数名 | 書式、コメント |
1.x系 | cvSaveImage | int cvSaveImage( const char* filename, const CvArr* image ) |
2.x系 | cv::SaveImage | SaveImage(filename, image) |
関数 cvSaveImage は,画像を指定したファイルに保存する. 画像フォーマットは,filename の拡張子により決定される(cvLoadImage を参照). この関数で保存できるのは,8 ビット 1チャンネル,あるいは 8 ビット3 チャンネル('BGR' の順)画像だけである. フォーマットやデプス,チャンネルの順序などが異なる場合は,保存する前に cvCvtScale と cvCvtColor を使って画像を変換するか,あるいは汎用的な関数 cvSave を利用して XML/YAML フォーマットで保存すること。
[opencv.jp document より引用]
[opencv.jp document より引用]
本記事は以下の参考書を元に書いています。
2013-11-25 00:15
nice!(0)
コメント(0)
トラックバック(0)
コメント 0