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

void cvCvtColor( IplImage* src, IplImage* dst, int code );

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

引数

  • src:IplImage*型の原画像
  • dst:IplImage*型の出力画像
  • code:int型のフラグ
  • 全フラグは最後に記述

返り値

  • void型なのでなし

void cvConvertImage( IplImage *src, IplImage* dst, int flags );

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

引数

  • src:IplImage*型の原画像
  • dst:IplImage*型の出力画像
  • flags:int型のフラグ
    • CV_CVTIMG_FLIP
    • CV_CVTIMG_SWAP_RB

返り値

  • void型なのでなし

解説

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

サンプルコード

  1.  IplImage *src = cvLoadImage("input.bmp");
  2.  IplImage *dst = cvCreateImage( cvGetSize( src), src->type, 1);
  3.  cvCvtColor( src, dst, CV_RGB2GRAY); // RGBをグレースケール化

実体ファイル

  • cv/include/cv.h
  • cv/src/cvcolor.cpp
  • otherlibs/highgui/utils.cpp
  • otherlibs/highgui/highgui.h

ジャンル:OpenCV

付録

  • codeの一覧

RGBA入れ替え系

  • CV_RGB2BGR
  • CV_BGR2BGRA
  • CV_RGB2BGRA
  • CV_BGRA2BGR
  • CV_RGBA2BGR
  • CV_BGRA2RGBA

RGB<->インデックスRGB系

  • 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

グレースケール系

  • CV_BGR2GRAY
  • CV_BGRA2GRAY
  • CV_RGB2GRAY
  • CV_RGBA2GRAY
  • CV_BGR5652GRAY
  • CV_BGR5552GRAY
  • CV_GRAY2BGR
  • CV_GRAY2BGRA
  • CV_GRAY2BGR565
  • CV_GRAY2BGR555

YCrCb系

  • CV_BGR2YCrCb
  • CV_RGB2YCrCb
  • CV_YCrCb2BGR
  • CV_YCrCb2RGB

XYZ系

  • CV_BGR2XYZ
  • CV_RGB2XYZ
  • CV_XYZ2BGR
  • CV_XYZ2RGB

HSV,HLS系

  • CV_BGR2HSV
  • CV_RGB2HSV
  • CV_BGR2HLS
  • CV_RGB2HLS
  • CV_HSV2BGR
  • CV_HSV2RGB
  • CV_HLS2BGR
  • CV_HLS2RGB

L*a*b*系

  • CV_BGR2Lab
  • CV_RGB2Lab
  • CV_Lab2BGR
  • CV_Lab2RGB

Luv系

  • CV_BGR2Luv
  • CV_RGB2Luv
  • CV_Luv2BGR
  • CV_Luv2RGB

Bayer系(良く分からない)

  • CV_BayerBG2BGR
  • CV_BayerGB2BGR
  • CV_BayerRG2BGR
  • CV_BayerGR2BGR

ジャンル:OpenCV:OpenCV 1.0準拠


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-12-07 (火) 16:12:13 (2544d)