現在地 >> メニュー >> OpenCV >> IplImage編03
INDEX:IplImage編02 << IplImage編03 >> IplImage編04

色空間


RGBの3色の時、OpenCVのデフォルトの色空間は「BGRの順」である。

色空間の変更には 「cvCvtColor関数」を使う。


void cvCvtColor( const CvArr* src, CvArr* dst, int code )
[src]:入力
[dst]:出力
[code]:変換方法
CV_BGR2RGBBGRをRGBの順に変換
CV_BGR2GRAYBGRをグレイスケール画像にする
CV_GRAY2BGRグレイスケール画像をBGRにする(3チャネルのグレイスケール)
CV_BGR2YCrCbBGRをYCrCbに変換
CV_BGR2HSVBGRをHSVに変換
などなど...

【例】
IplImage *imgA = cvLoadImage("test2.jpg");
… …
cvCvtColor(imgA,imgA,CV_BGR2HSV);//BGRからHSVに変換
… …

上下左右反転


「上下反転」、「左右反転」、あるいは「上下左右反転」は「cvFlip関数」で行う。

void cvFlip( const CvArr* src, CvArr* dst CV_DEFAULT(NULL),int flip_mode CV_DEFAULT(0))
[src]:入力
[dst]:出力
[flip_mode]:反転の種類
0上下反転
1左右反転
-1上下左右反転

【例】
IplImage *imgA = … …
… …
cvFlip(imgA,imgA,1);
… …

なおデフォルト引数があるので「cvFlip(imgA)」とやると出力先は「imgA」で「上下反転」となる

色空間と上下反転を同時に行う

アプリケーションによっては、RGBの順である必要があったり、ウィンドウ左下が原点の座標系の場合がある。
そのような時に色空間と上下反転を同時に行う関数として「cvConvertImage関数」がある。

void cvConvertImage( const CvArr* src, CvArr* dst, int flags CV_DEFAULT(0))
[src]:入力
[dst]:出力
[flags]
CV_CVTIMG_FLIP上下反転
CV_CVTIMG_SWAP_RBBGR⇒RGBの順にする

【例】
IplImage *imgA = cvLoadImage("test2.jpg");
… …
cvConvertImage(imgA,imgA,CV_CVTIMG_FLIP | CV_CVTIMG_SWAP_RB);
… …
単独で指定してもいい。この例のように同時指定もできる。

サンプルコード


目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます