[C++ OpenCV] 기본 자료형 클래스.
Point_클래스
template<typename _Tp> class Point_
{
public:
Point_();
// 기본 생성자 x=0, y=0 으로 초기화 됩니다.
Point_(_Tp _x, _Tp _y);
// (_x,_y) 좌표를 인자로 받는 생성자. x=_x, y=_y로 초기화 됩니다.
Point_(const Point_& pt);
// 복사 생성자. x=pt.x, y=pt.y 로 초기화 됩니다.
Point_& operator = (const Point_& pt);
// 대입 연산자 재정의
_Tp dot(const Point_& pt) const;
// Point::dot() 멤버 함수는 두 점 사이의 내적(dot product)을 계산하여 반환합니다.
double ddot(const Point_& pt) const;
// Point::ddot() 멤버 함수는 두 점 사이의 내적을 실수형으로 계산하여 double 자료형으로 반환합니다.
double cross(const Point_& pt) const;
// Point::cross() 멤버 함수는 두 점 사이의 외적(cross product)을 반환합니다.
bool inside(const Rect_<_Tp>& r) const;
// Point::inside() 멤버 함수는 점의 좌표가 사각형 r 영역 안에 있으면 true를 반환합니다.
_Tp x, y;
// 멤버 변수. x는 x축 좌표, y는 y축 좌표를 나타냅니다.
};
typedef Point_<int> Point2i;
typedef Point_<int64> Point2l;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point2i Point;
// 다양한 자료형에 대한 Point_클래스 이름 재정의입니다.
Size_클래스
template<typename _Tp> class Size_
{
public:
Size_();
// 기본 생성자. width=0, height=0으로 초기화됩니다.
Size_(_Tp _width, _Tp _height);
// (_width, _height) 크기를 인자로 받는 생성자. width=_width, height=_height로 초기화됩니다.
Size_(const Size_& sz);
// 복사 생성자. width=sz.width, height=sz.height로 초기화됩니다.
Size_& operator = (const Size_& sz);
// 대입 연산자 재정의입니다.
_Tp area() const;
// Size::area() 멤버 함수는 사각형 크기에 해당하는 면적(width*height)을 반환합니다.
bool empty() const;
// Size::empty() 멤버 함수는 유효하지 않은 크기이면 true를 반환합니다.
_Tp width, height;
// 멤버 변수. width는 사각형 영역의 가로 크기, height는 사각형 영역의 세로 크기를 나타냅니다.
};
typedef Size_<int> Size2i;
typedef Size_<int64> Size2l;
typedef Size_<float> Size2f;
typedef Size_<double> Size2d;
typedef Size2i size;
// 다양한 자료형에 대한 Size_클래스 이름 재정의입니다.
Rect_클래스
template<typename _Tp> class Rect_
{
public:
Rect_();
// 기본 생성자. 모든 멤버 변수를 0으로 초기화합니다.
Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);
// (_x, _y, _width, _height) 사각형 정보를 인자로 받는 생성자.
// x=_x, y=_y, width=_width, height=_height로 초기화합니다.
Rect_(const Rect_& r);
// 복사 생성자. x=r.x, y=r.y, width=r.width, height=r.height로 초기화합니다.
Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz);
// 좌측 상단 점의 좌표와 사각형의 크기 정보를 인자로 받는 생성자입니다.
Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2);
// 사각형에서 서로 대각 위치에 있는 두 점의 좌표를 인자로 받는 생성자입니다.
Rect_& operator = (const Rect_& r);
// 대입 연산자 재정의입니다.
Point_<_Tp> tl() const;
// Rect::tl() 멤버 함수는 사각형의 좌착 상단 점의 좌표를 반환합니다.
Point_<_Tp> br() const;
// Rect::br() 멤버 함수는 사각형의 우측 하단 점의 좌표를 반환합니다.
Size_<_Tp> size() const;
// Rect::Size() 멤버 함수는 사각형의 크기 정보를 반환합니다.
_Tp area() const;
// Rect::area() 멤버 함수는 사각형의 면적(width*height)을 반환합니다.
bool empty() const;
// Rect::empty() 멤버 함수는 유효하지 않은 사각형이면 true를 반환합니다.
bool contains(const Point_<_Tp>& pt) const;
// Rect::contains() 멤버 함수는 인자로 전달된 pt점이 사각형 내부에 있으면 true를 반환합니다.
_Tp x, y, width, height;
// 멤버 변수. x, y는 사각형 좌측 상단 점의 좌표, width, height는 사각형의 가로와 세로 크기를 나타냅니다.
};
typedef Rect_<int> Rect2i;
typedef Rect_<float> Rect2f;
typedef Rect_<double> Rect2d;
typedef Rect2i Rect;
// 다양한 자료형에 대하여 Rect_클래스 이름 재정의입니다.
RotatedRect 클래스
class RatetedRect
{
public:
RotatedRect();
// 기본 생성자. 모든 멤버 변수를 0으로 초기화합니다.
RotatedRect(const Point2f& _center, const Size2f& _size, float _angle);
// (_center, _size, _angle)을 인자로 받는 생성자.
// center=_center, size=_size, angle=_angle로 초기화합니다.
RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3);
// (point1, point2, point3)을 인자로 받는 생성자.
// 인자로 전달된 세 점은 회전된 사각형의 세 꼭지점 좌표를 나타냅니다.
void points(Point2f pts[]) const;
// RotatedRect::points() 멤버 함수는 회전된 사각형은 네 꼭지점 좌표를 pts 인자에 저장합니다.
Rect BoundingRect() const;
// RotatedRect::boundingRect() 멤버 함수는 회전된 사각형을 포함하는
// 최소 크기의 사각형 정보를 반환합니다.(정수 단위).
Rect_<float> boundingRect2f() const;
// RotatedRect::boundingRect2f() 멤버 함수는 회전된 사각형을 포함하는
// 최소 크기의 사각형 정보를 반환합니다(실수단위).
Point2f center;
Size2f size;
float angle;
// 멤버 변수. center는 사각형의 중심 좌표, size는 사각형의 크기, angle은 시계 방향 회전 각도를 나타냅니다.
};
Range 클래스
class Range
{
public:
Range();
// 기본 생성자. start=end=0으로 초기화합니다.
Range(int _start, int _end);
// 두 개의 정수를 인자로 받는 생성자. start=_start, end=_end로 초기화합니다.
int size() const;
// Range::size() 멤버 함수는 범위 크기(end-start)를 반환합니다.
bool empty() const;
// Range::empty() 멤버 함수는 start와 end가 같으면 true를 반환합니다.
static Range all();
// Range::all() 멤버 함수는 start=INT_MIN, end=INT_MAX로 설정한 Range 객체를 반환합니다.
int start, end;
// 멤버 변수. start는 시작, end는 범위의 끝을 나타냅니다.
};
String 클래스
String format(const char* fmt, ...);
- fmt : 형식 문자열
- … : 가변 인자
- 반환값 : 지정한 형식으로 생성된 문자열
댓글남기기