코드 3-6 간략화한 Mat 클래스 정의
01 class Mat 02 { 03 public: 04 Mat(); 05 Mat(int rows, int cols, int type); 06 Mat(Size size, int type); 07 Mat(int rows, int cols, int type, const Scalar& s); 08 Mat(Size size, int type, const Scalar& s); 09 Mat(const Mat& m); 10 ~Mat(); 11 12 void create(int rows, int cols, int type); 13 bool empty() const; 14 15 Mat clone() const; 16 void copyTo(OutputArray m) const; 17 Mat& setTo(InputArray value, InputArray mask=noArray()); 18 19 static MatExpr zeros(int rows, int cols, int type); 20 static MatExpr ones(int rows, int cols, int type); 21 22 Mat& operator = (const Mat& m); 23 Mat operator()( const Rect& roi ) const; 24 25 template<typename _Tp> _Tp* ptr(int i0 = 0); 26 template<typename _Tp> _Tp& at(int row, int col); 27 28 int dims; 29 int rows, cols; 30 uchar* data; 31 MatSize size; 32 ... 33 };
• 4~10행 Mat 클래스의 다양한 생성자와 소멸자입니다.
• 12~26행 Mat 클래스의 멤버 함수입니다. Mat 클래스의 멤버 함수에는 연산자 재정의 함수와 정적 멤버 함수도 포함됩니다.
• 28~31행 Mat 클래스의 주요 멤버 변수입니다.
• 32행 말 줄임표는 실제 소스 코드가 아니라 일부 코드가 생략되어 있음을 의미합니다.