OpenCVSharp

OpenCVSharp Split Merge

public void Merge_method()
{
    Mat OriginalImage = new Mat("../../opencv.png", ImreadModes.AnyColor);
    Mat FillMatrix = Mat.Zeros(OriginalImage.Size(), MatType.CV_8UC1);

    Mat[] rgb;

    Cv2.Split(OriginalImage, out rgb);

    Mat[] r = { FillMatrix, FillMatrix, rgb[2] };
    Mat[] g = { FillMatrix, rgb[1], FillMatrix };
    Mat[] b = { rgb[0], FillMatrix, FillMatrix };

    Mat merge = new Mat();

    Cv2.Merge(r, merge);
    Cv2.ImShow("r", merge);

    Cv2.Merge(g, merge);
    Cv2.ImShow("g", merge);

    Cv2.Merge(b, merge);
    Cv2.ImShow("b", merge);

    Cv2.Merge(rgb, merge);

    Cv2.ImShow("remerge", merge);
    Cv2.WaitKey();
}

색의 삼원소, 채널을 분리하고 다시 각 채널을 합치는 소스코드입니다.


Cv2.Split(Mat, out Mat[]);

이미지 원본을 채널 3개로 나눕니다.

Mat 배열에 0번에 파란색, 1번에 초록색, 2번에 빨간색을 담습니다.



Cv2.Merge(Mat[], Mat);

채널 3개로 나뉘어진 Mat 배열을 하나의 이미지로 합칩니다.

결과:

Image Alt

Image Alt

Image Alt

Image Alt