2012/11/13

彩度を下げる

概要

彩度はRGB表色系のままだといじりにくい。
HSV表色系にするとSで表される。
このサンプルを通して、OpenCVでの色の扱いを勉強しよう。

実装

int main() {
    // 画像を読み込む
    string fileName = "images\\gori.jpg";
    Mat originalImage = imread(fileName, CV_LOAD_IMAGE_COLOR);
    
    // 元の画像を表示
    imshow("out", originalImage);
    waitKey(0);

    // BGRからHSVに変換
    Mat hsvImage;
    cvtColor(originalImage, hsvImage, CV_BGR2HSV);
    
    // H, S, V にわける
    vector<Mat> planes;
    split(hsvImage, planes);

    // S の値だけ半分にする
    planes[1] *= 0.5;

    // HSV画像に戻す
    merge(planes, hsvImage);

    // HSVからBGRに変換
    cvtColor(hsvImage, originalImage, CV_HSV2BGR);
    
    // 表示
    imshow("out", originalImage);
    waitKey(0);

    return 0;
}

解説

とくにない。
画像のパスは各自で変更する。

結果

変換前

変換後


0 件のコメント:

Related Posts Plugin for WordPress, Blogger...