split() 함수와 반대로 1채널 행렬 여러 개를 합쳐서 다채널 행렬 하나를 생성하려면 merge() 함수를 사용합니다. merge() 함수 원형은 다음과 같습니다.
void merge(const Mat* mv, size_t count, OutputArray dst); void merge(InputArrayOfArrays mv, OutputArray dst); |
|
• mv |
1채널 행렬을 저장하고 있는 배열 또는 벡터. 모든 행렬은 크기와 깊이가 같아야 합니다. |
• count |
(mv가 Mat 타입의 배열인 경우) Mat 배열의 크기 |
• dst |
출력 다채널 행렬 |
split() 함수를 이용하여 BGR 컬러 영상으로부터 B, G, R 색 채널을 분리하여 화면에 출력하는 예제 코드를 코드 10-3에 나타냈습니다. 코드 10-3에 나타난 color_split() 함수는 candies.png 파일을 3채널 컬러 영상 형식으로 불러온 후 각 채널을 분리합니다. 이때 분리된 각 채널은 CV_8UC1 타입의 그레이스케일 영상이므로 imshow() 함수를 이용하여 화면에 나타낼 수 있습니다. color_split() 함수가 정의된 소스 코드 파일과 사용된 영상 파일은 내려받은 예제 파일 중에서 ch10/ColorOp 프로젝트를 참고하기 바랍니다.