RGB以外の色空間どうしの変換や,グレースケールへの変換

#contents

*void cvCvtColor( IplImage* src, IplImage* dst, int code ); [#b1512d42]

srcの色空間を変換してdstに格納

**引数 [#x997490f]
-src:IplImage*型の原画像
-dst:IplImage*型の出力画像
-code:int型のフラグ
-全フラグは最後に記述

**返り値 [#kbcc4483]
-void型なのでなし

*void cvConvertImage( IplImage *src, IplImage* dst, int flags ); [#y7284878]

srcの色の格納順,画像の向きを反転してdstに格納

**引数 [#n5d95fcb]
-src:IplImage*型の原画像
-dst:IplImage*型の出力画像
-flags:int型のフラグ
--CV_CVTIMG_FLIP
--CV_CVTIMG_SWAP_RB

**返り値 [#kbcc4483]
-void型なのでなし

*解説 [#he4b113f]
-srcとdstは同型の必要あり.
-codeは基本的にCV_***2***となっており,***の中に希望の色空間を表す3文字程度の英数を入れる.
-''RGB''2GRAYや''BGR''2GRAYなど,パレットの順番も気にする
-IplImageではBGRの順に格納している
-ConvertImageでは指定次第で
--BGRの逆順(CV_CVTIMG_SWAP_RB)
--画像の反転(CV_CVTIMG_FLIP)
-を行ってくれる
-ユーザより,cvShowImage内で使われる方が頻度が高いみたい
-反転は[[Flip>画像の反転]]を使ってるだけなので,等価
-このConvertImageのおかげで,グレースケール画像もカラー画像も気にせず表示することができるってわけ
-色変換をするだけならばcvCvtColorだけ覚えておけばOK

*サンプルコード [#a583d39c]

#geshi(c++,number){{
 IplImage *src = cvLoadImage("input.bmp");
 IplImage *dst = cvCreateImage( cvGetSize( src), src->type, 1);
 cvCvtColor( src, dst, CV_RGB2GRAY); // RGBをグレースケール化
}}

*実体ファイル [#zf954f46]
-cv/include/cv.h
-cv/src/cvcolor.cpp
-otherlibs/highgui/utils.cpp
-otherlibs/highgui/highgui.h

ジャンル[[:OpenCV]]

*付録 [#wa47d278]
-codeの一覧
**RGBA入れ替え系 [#zffd5d01]
--CV_RGB2BGR
--CV_BGR2BGRA
--CV_RGB2BGRA
--CV_BGRA2BGR
--CV_RGBA2BGR
--CV_BGRA2RGBA
**RGB<->インデックスRGB系 [#w74d2a90]
--CV_BGR2BGR565
--CV_BGR2BGR555
--CV_RGB2BGR565
--CV_RGB2BGR555
--CV_BGRA2BGR565
--CV_BGRA2BGR555
--CV_RGBA2BGR565
--CV_RGBA2BGR555
--CV_BGR5652BGR
--CV_BGR5552BGR
--CV_BGR5652RGB
--CV_BGR5552RGB
--CV_BGR5652BGRA
--CV_BGR5552BGRA
--CV_BGR5652RGBA
--CV_BGR5552RGBA
**グレースケール系 [#iaa0fc64]
--CV_BGR2GRAY
--CV_BGRA2GRAY
--CV_RGB2GRAY
--CV_RGBA2GRAY
--CV_BGR5652GRAY
--CV_BGR5552GRAY
--CV_GRAY2BGR
--CV_GRAY2BGRA
--CV_GRAY2BGR565
--CV_GRAY2BGR555
**YCrCb系 [#aba0a9bf]
--CV_BGR2YCrCb
--CV_RGB2YCrCb
--CV_YCrCb2BGR
--CV_YCrCb2RGB
**XYZ系 [#te77c468]
--CV_BGR2XYZ
--CV_RGB2XYZ
--CV_XYZ2BGR
--CV_XYZ2RGB
**HSV,HLS系 [#y6d94893]
--CV_BGR2HSV
--CV_RGB2HSV
--CV_BGR2HLS
--CV_RGB2HLS
--CV_HSV2BGR
--CV_HSV2RGB
--CV_HLS2BGR
--CV_HLS2RGB
**L*a*b*系 [#vc60fc48]
--CV_BGR2Lab
--CV_RGB2Lab
--CV_Lab2BGR
--CV_Lab2RGB
**Luv系 [#eaa6bca2]
--CV_BGR2Luv
--CV_RGB2Luv
--CV_Luv2BGR
--CV_Luv2RGB
**Bayer系(良く分からない) [#x7e498c2]
--CV_BayerBG2BGR
--CV_BayerGB2BGR
--CV_BayerRG2BGR
--CV_BayerGR2BGR

ジャンル[[:OpenCV]][[:OpenCV 1.0]]準拠

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS