더북(TheBook)

코드 3-15에 정의된 Scalar_ 클래스는 Vec 클래스를 상속받았으며, 네 개의 원소를 가지고 있는 템플릿 클래스입니다. Scalar_ 클래스는 템플릿 클래스이기 때문에 다양한 자료형에 대해 정의할 수 있습니다. 그중 특별히 double 자료형을 사용하는 경우에는 Scalar라고 재정의된 이름을 사용할 수 있습니다. 그러므로 Scalar 클래스는 크기가 4인 double형 배열 val을 멤버 변수로 가지고 있는 자료형이라고 생각할 수 있습니다.

Scalar 클래스는 보통 네 개 이하의 채널을 갖는 영상의 픽셀 값을 표현하는 용도로 사용됩니다. 그레이스케일 영상의 경우, Scalar 클래스의 첫 번째 원소가 픽셀 밝기를 표현하고 나머지 세 개의 원소는 0으로 설정됩니다. 트루컬러 영상의 경우, Scalar 클래스의 처음 세 개 원소가 B(파란색), G(녹색), R(빨간색) 색상 성분 값을 표현하고, 네 번째 원소는 보통 0으로 설정됩니다. 간혹 PNG 파일 형식처럼 투명도를 표현하는 알파 채널이 있는 경우 Scalar 클래스의 네 번째 원소를 이용하기도 합니다. 자주 사용되는 Scalar 클래스 객체 생성 방법을 정리하면 다음과 같습니다.

Scalar(밝기)
Scalar(파란색, 녹색, 빨간색)
Scalar(파란색, 녹색, 빨간색, 투명도)

실제로 Scalar 클래스를 사용하는 예제 코드를 보면서 Scalar 클래스 사용 방법을 알아보겠습니다. 코드 3-16은 Scalar 클래스를 사용하는 예제 코드이며, 여기에 나온 ScalarOp() 함수를 사용하는 전체 코드는 내려받은 예제 파일에서 ch03/ScalarOp 프로젝트에서 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.