3.3.2 Scalar 클래스
OpenCV 프로그래밍에서 Mat 클래스 다음으로 자주 사용되는 클래스는 Scalar 클래스입니다. Scalar 클래스는 4채널 이하의 영상에서 픽셀 값을 표현하는 용도로 자주 사용됩니다. 사실 Scalar 클래스는 Scalar_라는 이름의 클래스 템플릿 이름 재정의이며, Scalar_ 클래스는 Vec 클래스를 상속받아 만들어졌습니다. 코드 3-15는 간략화한 Scalar_ 클래스와 Scalar 이름 재정의를 보여 줍니다.
코드 3-15 간략화한 Scalar_와 Scalar 클래스 정의
01 template<typename _Tp> class Scalar_ : public Vec<_Tp, 4> 02 { 03 public: 04 Scalar_(); 05 Scalar_(_Tp v0); 06 Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0); 07 08 static Scalar_<_Tp> all(_Tp v0); 09 ... 10 }; 11 12 typedef Scalar_<double> Scalar;
• 4~5행 Scalar_ 클래스 생성자입니다.
• 8행 Scalar_::all() 멤버 함수는 네 개의 val 배열 값을 모두 v0으로 설정한 Scalar_ 객체를 반환합니다.
• 12행 double 자료형을 사용하는 Scalar_ 클래스에 대해 Scalar라는 이름으로 재정의합니다.