2012-05-13 16 views
1

私はopenCVを使用しています.2つの3チャンネルRGB画像を1つの6チャンネル画像に結合する必要があります。画像はIplimagesであり、私はそれらをマットに変換する必要があると思うが、それでも私はそれらを組み合わせる方法を正確にはわからない。何か案は?2つのRGB画像を6チャンネルの画像に合成する - openCV

答えて

0

splitは、単一チャンネルの画像の配列に画像を分割し、mergeは、それらを任意の順序で一緒に戻します。理論的にはopencvは任意の数のチャンネルで動作しますが、多くの機能は1または3(すなわちグレーまたはノーマル)でしか動作しないと思われます。 'color)

+0

は、私が使用して見ていました私はちょっと混乱していました。すべてのチャンネルをどのように渡すかについて、私は少し混乱していました。 –

+0

@ChrisMondiek - cv :: Matのstd :: vectorです。これはリファレンスを数えてstd :: vectorに追加するだけで、memeryを処理します –

0

OpenCVでサポートされている画像形式は最大4チャンネル(RGBA)ですので、CV_MAX_CN(デフォルトでは32チャンネル)まで定義できるMatに画像データを変換する必要があります。おそらく、両方のあなたのイメージは、適切なフォーマットであることを確認するためにMat::convertToを使用することができ

、その後、mixChannels使用:あなたのマッピングのようなものになります

mixChannels(const vector<Mat>& src, vector<Mat>& dst, const int* fromTo, int npairs) 

S1[0] -> D[0] 
S1[1] -> D[1] 
S1[2] -> D[2] 
S2[0] -> D[3] 
S2[1] -> D[4] 
S2[2] -> D[5] 

int from_to[] = { 0,0, 1,1, 2,2, 0,1, 1,4, 2,5 }; 
関連する問題