画像形式の変換

色空間 (Color space) の変換

void cvCvtColor(
    const CvArr* src,   // 入力画像
    CvArr* dst,         // 出力画像
    int code            // 色空間の変換方法
    );
CvtColor - OpenCV 1.0 リファレンス - opencv.jp

入力画像と出力画像のサイズは同一である必要があります。

引数codeには所望する変換方法に応じて、以下の定数を指定します。

色変換の定数
入力画像の色空間 定数 (別名)
BGR CV_BGR2BGRA CV_RGB2RGBA
CV_BGR2RGBA CV_RGB2BGRA
CV_BGR2RGB CV_RGB2BGR
CV_BGR2GRAY  
CV_BGR2BGR565  
CV_BGR2BGR555  
CV_BGR2XYZ  
CV_BGR2YCrCb  
CV_BGR2HSV  
CV_BGR2Lab  
CV_BGR2Luv  
CV_BGR2HLS  
BGRA CV_BGRA2BGR CV_RGBA2RGB
CV_BGRA2RGBA CV_RGBA2BGRA
CV_BGRA2GRAY  
CV_BGRA2BGR565  
CV_BGRA2BGR555  
BGR565 CV_BGR5652BGR  
CV_BGR5652RGB  
CV_BGR5652BGRA  
CV_BGR5652RGBA  
CV_BGR5652GRAY  
BGR555 CV_BGR5552BGR  
CV_BGR5552RGB  
CV_BGR5552BGRA  
CV_BGR5552RGBA  
CV_BGR5552GRAY  
RGB CV_RGB2GRAY  
CV_RGB2BGR565  
CV_RGB2BGR555  
CV_RGB2XYZ  
CV_RGB2YCrCb  
CV_RGB2HSV  
CV_RGB2Lab  
CV_RGB2Luv  
CV_RGB2HLS  
RGBA CV_RGBA2BGR CV_BGRA2RGB
CV_RGBA2GRAY  
CV_RGBA2BGR565  
CV_RGBA2BGR555  
GRAY CV_GRAY2BGR CV_GRAY2RGB
CV_GRAY2BGRA CV_GRAY2RGBA
CV_GRAY2BGR565  
CV_GRAY2BGR555  
XYZ CV_XYZ2BGR  
CV_XYZ2RGB  
YCrCb CV_YCrCb2BGR  
CV_YCrCb2RGB  
BayerBG CV_BayerBG2BGR CV_BayerRG2RGB
BayerGB CV_BayerGB2BGR CV_BayerGR2RGB
BayerRG CV_BayerRG2BGR CV_BayerBG2RGB
BayerGR CV_BayerGR2BGR CV_BayerGB2RGB
HSV CV_HSV2BGR  
CV_HSV2RGB  
Lab CV_Lab2BGR  
CV_Lab2RGB  
Luv CV_Luv2BGR  
CV_Luv2RGB  
HLS CV_HLS2BGR  
CV_HLS2RGB  

しきい値処理 - 2値化 (binarization)

void cvThreshold(
    const CvArr* src,   // 入力画像
    CvArr* dst,         // 出力画像
    double threshold,   // しきい値
    double max_value,   // 最大値
    int threshold_type  // 処理の種類
    );

入力画像と出力画像は、同一のデータ型である必要があります。

threshold_typeの値
定数 ピクセルごとの輝度 処理イメージ
しきい値以下 しきい値より大きい
CV_THRESH_BINARY 0 (黒) 引数max_value
CV_THRESH_BINARY_INV 引数max_value 0 (黒)
CV_THRESH_TRUNC 変更なし 引数threshold
CV_THRESH_TOZERO 0 (黒) 変更なし
CV_THRESH_TOZERO_INV 変更なし 0 (黒)