더북(TheBook)

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라는 이름으로 재정의합니다.

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