이번 글에서는 C++와 OpenCV를 활용해 이미지의 채널 수(channel)를 확인하는 방법을 알아봅니다. 프로그램을 실행하면 해당 이미지의 채널 수가 콘솔 창에 출력됩니다.
이미지의 채널 수를 얻으려면 OpenCV에서 제공하는 channels() 함수를 사용하면 됩니다. 이미지를 담고 있는 Mat(행렬) 객체에 이 함수를 호출하면 해당 이미지의 채널 수가 정수 값으로 반환됩니다.
참고로 일반적인 컬러 이미지는 파랑(B), 초록(G), 빨강(R)으로 구성된 3개의 채널을 가지며, 그레이스케일(흑백) 이미지는 1개의 채널만 가집니다. 따라서 이 함수를 활용하면 불러온 이미지가 컬러인지 흑백인지도 쉽게 판별할 수 있습니다.
아래 예제 프로그램은 이미지의 채널 수를 계산하여 콘솔 창에 출력합니다.
예제 코드
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat image_load;//이미지를 불러올 행렬 선언//
image_load = imread("colors.jpg");//행렬에 이미지 불러오기//
int number_of_channel = image_load.channels();//채널 수를 변수에 저장//
cout << "The number of channel(s)=" << number_of_channel << endl;//채널 수 출력//
system("pause");//채널 수를 확인할 수 있도록 시스템 일시 정지//
waitKey(0);
return 0;
}
실행 결과
