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

#contents

*void cvSplit( IplImage* src, IplImage* blue, IplImage* green, IplImage* red, IplImage* alpha); [#s0ac5ff2]

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

**引数 [#u1d3269d]
-src:IplImage*型の原画像
-blue:IplImage*型の0枚目の成分
-green:IplImage*型の1枚目の成分
-red:IplImage*型の2枚目の成分
-alpha:IplImage*型の3枚目の成分

**返り値 [#n04c1f27]
-void型なのでなし

*cvMerge( IplImage* blue, IplImage* green, IplImage* red, IplImage* alpha, IplImage* dst ); [#de890fba]
最大4枚のチャンネルを1枚の画像に統合する

**引数 [#o9434bdb]
-blue:IplImage*型の0枚目の成分
-green:IplImage*型の1枚目の成分
-red:IplImage*型の2枚目の成分
-alpha:IplImage*型の3枚目の成分
-dst:IplImage*型の出力画像

**返り値 [#f4f3eda2]
-void型なのでなし

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

*サンプルコード [#v0ce851b]
 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に赤色成分が格納される

*注意 [#q838cae3]
-IplImageではBGRの順に色が格納されている

**実体ファイル [#ad329331]
-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