画像のチャンネル(RGBなど)を分離,統合するcvSplitとcvMerge

void cvSplit( IplImage* src, IplImage* blue, IplImage* green, IplImage* red, IplImage* alpha);

srcを最大4枚の画像に分割する

引数

  • src:IplImage*型の原画像
  • blue:IplImage*型の0枚目の成分
  • green:IplImage*型の1枚目の成分
  • red:IplImage*型の2枚目の成分
  • alpha:IplImage*型の3枚目の成分

返り値

  • void型なのでなし

cvMerge( IplImage* blue, IplImage* green, IplImage* red, IplImage* alpha, IplImage* dst );

最大4枚のチャンネルを1枚の画像に統合する

引数

  • blue:IplImage*型の0枚目の成分
  • green:IplImage*型の1枚目の成分
  • red:IplImage*型の2枚目の成分
  • alpha:IplImage*型の3枚目の成分
  • dst:IplImage*型の出力画像

返り値

  • void型なのでなし

解説

  • 複数の画像に各成分を分離したり,1枚の画像に統合したりする
  • 各成分はNULLか0を指定することで省略可能
    • 引数自体は省略できない
  • CvMat*型でも可能
  • IplImage型では4チャンネルまでサポートしている

サンプルコード

IplImage *src	= cvLoadImage( filename, CV_LOAD_IMAGE_COLOR); //カラー画像としてロード
IplImage *r	= cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1);
IplImage *g	= cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1);
IplImage *b	= cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1);
cvSplit( src, b, g, r, 0); //bに青色成分,gに緑色成分,rに赤色成分が格納される

注意

  • IplImageではBGRの順に色が格納されている

実体ファイル

  • OpenCV 1.1 以前
    • cxcore/src/cxconvert.cpp
    • cxcore/include/cxcore.h
  • OpenCV 2.4
    • modules/core/src/convert.cpp
    • modules/include/opencv2/core/core_c.h
    • modules/include/opencv2/core/core.hpp

ジャンル:OpenCV:OpenCV 1.0:OpenCV 2.4準拠


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-10-23 (火) 14:11:50 (1858d)