最終更新: mikk_ni3_92 2009年11月19日(木) 16:49:23履歴
現在地 >> メニュー >> 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]:変換方法
などなど...
【例】
「上下反転」、「左右反転」、あるいは「上下左右反転」は「cvFlip関数」で行う。
void cvFlip( const CvArr* src, CvArr* dst CV_DEFAULT(NULL),int flip_mode CV_DEFAULT(0))
[src]:入力
[dst]:出力
[flip_mode]:反転の種類
【例】
なおデフォルト引数があるので「cvFlip(imgA)」とやると出力先は「imgA」で「上下反転」となる
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_BGR2RGB | BGRをRGBの順に変換 |
CV_BGR2GRAY | BGRをグレイスケール画像にする |
CV_GRAY2BGR | グレイスケール画像をBGRにする(3チャネルのグレイスケール) |
CV_BGR2YCrCb | BGRをYCrCbに変換 |
CV_BGR2HSV | BGRを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]
【例】
そのような時に色空間と上下反転を同時に行う関数として「cvConvertImage関数」がある。
void cvConvertImage( const CvArr* src, CvArr* dst, int flags CV_DEFAULT(0))
[src]:入力
[dst]:出力
[flags]
CV_CVTIMG_FLIP | 上下反転 |
CV_CVTIMG_SWAP_RB | BGR⇒RGBの順にする |
【例】
IplImage *imgA = cvLoadImage("test2.jpg"); … … cvConvertImage(imgA,imgA,CV_CVTIMG_FLIP | CV_CVTIMG_SWAP_RB); … …単独で指定してもいい。この例のように同時指定もできる。
- IplImage編03::まとめ1(グレイスケールで読み込む、グレースケール変換)
- IplImage編03::まとめ2(色空間の変更part_1)
- IplImage編03::まとめ3(色空間の変更part_2、3チャネルのグレイスケール)
- IplImage編03::まとめ4(上下左右反転)
- IplImage編03::まとめ5(cvConvertImage)