1.Point_ 클래스
Point pt1; // pt1 = (0, 0)
pt1.x = 5; pt1.y = 10; // pt1 = (5, 10)
Point pt2(10, 30); // pt2 = (10, 30)
- Point_ 클래스는 2차원 평면 위에 있는 점의 좌표를 표현하는 템플릿 클래스
- Point_ 클래스는 템플릿 클래스이기 때문에 실제로 사용할 경우 어떤 자료형으로 좌표를 표현할 것인지 명시해야 함.
- OpenCV는 자주 사용하는 자료형에 대하여 Point_ 클래스 이름을 재정의하여 제공함.
-
typedef Point_<int> Point2i; typedef Point_<float> Point2f; typedef Point_<double> Point2d; typedef Point2i Point;
-
2. Size_ 클래스
Size sz1, sz2(10, 20); // sz1 = [0 x 0], sz2 = [10 x 20]
sz1.width = 5; sz1.height = 10; // sz1 = [5 x 10]
- 영상 또는 사각형 영역의 크기를 표현할 때 사용
- 사각형 영역의 가로와 세로 크기를 나타내는 width와 height 멤버 변수를 가지고 있음.
- Point_ 클래스와 마찬가지로 이름을 재정의하여 사용함.
3. Rect_ 클래스
Rect rc1; // rc1 = [0 x 0 from (0, 0)]
Rect rc2(10, 10, 60, 40); // rc2 = [60 x 40 from (10, 10)]
- 사각형의 위치와 크기 정보를 표현할 때 사용
- 사각형의 좌측 상단 점의 좌표를 나타내는 멤버 변수 = x, y / 사각형의 가로 및 세로 크기를 나타내는 멤버 변수 = width, height
- Rect_ 클래스는 Size_ 또는 Point_ 클래스 객체와의 산술 연산자 재정의가 가능
- Rect_ 객체와 Size_ 객체의 연산은 사각형의 가로와 세로 크기의 변경
- Rect_ 객체와 Point_ 객체의 연산은 사각형의 위치 변경
-
Rect rc3 = rc1 + Size(50, 40); // rc3 = [50 x 40 from (0, 0)] Rect rc4 = rc2 + Point(10, 10); // rc4 = [60 x 40 from (20, 20)]
- Rect_ 객체끼리 서로 &, | 연산자를 이용한 논리 연산 수행 가능
- & 연산 수행 시 두 사각형이 교차하는 사각형 영역 반환
- | 연산 수행 시 두 사각형을 모두 포함하는 최소 크기의 사각형 반환
-
Rect rc5 = rc3 & rc4; // rc5 = [30 x 20 from (10, 10)] Rect rc6 = rc3 | rc4; // rc6 = [80 x 60 from (0, 0)]
4. RotatedRect 클래스
RotatedRect rr1(Point2f(40, 30), Size2f(40, 20), 30.f);
Point2f pts[4]; //pts인자는 네 꼭지점 좌표를 저장하는 곳
rr1.points(pts);
Rect br = rr1.boundingRect();
- 회전된 사각형을 표현할 때 사용
- 회전된 사각형의 중심 좌표를 나타내는 center, 사각형의 가로 및 세로 크기를 나타내는 size, 회전 각도 정보를 나타내는 angle을 멤버 변수로 함.
- 모든 정보를 float 자료형을 사용하여 표현
'Computer Vision' 카테고리의 다른 글
OpenCV 주요 클래스 - 3. Vec와 Scalar 클래스 (0) | 2020.02.13 |
---|---|
OpenCV 주요 클래스 - 2. Mat 클래스(4) (0) | 2020.02.13 |
OpenCV 주요 클래스 - 2. Mat 클래스(3) (0) | 2020.02.12 |
OpenCV 주요 클래스 - 2. Mat 클래스(2) (0) | 2020.02.09 |
OpenCV 주요 클래스 - 2. Mat 클래스(1) (0) | 2020.02.09 |
댓글