[Computer Vision] 기본 자료형 클래스

2023. 10. 11. 00:06Run/Computer Vision

 

Point_ 픽셀의 좌표 표현
Size_ 사각형 영역의 크기 표현
Vec, Scalar 벡터 값 저장
Rect_ 사각형의 위치, 크기 정보 표현
RotatedRect 회전된 사각형 표현

 

1. Point_ 클래스

  • 2차원 평면 위에 있는 점의 좌표 표현하는 템플릿 클래스
  • x, y 멤버 변수 가짐
  • 어떤 자료형으로 좌표 표현할 것인지 명시해야 함
    • Point_<int> Point2i
    • Point_<int64> Point2l
    • Point_<float> Point2f
    • Point_<double> Point2d
    • Point2i Point (Point2i는 Point 클래스로 재정의됨)
  • 다양한 연산자에 대해 연산자 재정의 되어 있어 좌표 연산 수행 가능 (+, -, *, dot(), ==, ...)

 

2. Size_ 클래스

  • 영상 또는 사각형 영역 크기 표현할 때 사용
  • width, height 멤버 변수 가짐
  • 어떤 자료형으로 표현할 것인지 명시해야 함
    • Size_<int> Size2i
    • Size_<int64> Size2l
    • Size_<float> Size2f
    • Size_<double> Size2d
    • Size2i Size (Size2i는 Size 클래스로 재정의됨)
  • 다양한 연산자에 대해 연산자 재정의 되어 있어 사칙 연산 통해 크기 조절 가능
  • area() : 면적 반환
  • empty() : 유효하지 않은 크기면 true 반환

 

3. Rect_ 클래스

  • 사각형의 위치, 크기 정보 표현하기 위해 사용
  • x, y 멤버 변수 = 좌측 상단 점 (시작점) / width, height 멤버 변수
  • 어떤 자료형으로 표현할 것인지 명시해야 함
    • Rect_<int> Rect2i
    • Rect_<float> Rect2f
    • Rect_<double> Rect2d
    • Rect2i Rect (Rect2i는 Rect 클래스로 재정의됨)
  • Size_ 클래스, Point_ 클래스로 더하거나 빼서 조정할 수 있음
  • & : 교집합 영역 반환
  • | : 합집합 영역 반환
  • tl() : 시작점 좌표 반환
  • br() : 끝점 좌표 반환
  • size() : 사각형 크기 정보 반환
  • area() : 면적 반환
  • empty() : 유효하지 않는 사각형이면 true 반환
  • contains() : 인자로 전달된 점이 사각형 내부에 있으면 true 반환

 

4. Vec 클래스

  • 같은 자료형을 가진 여러 개의 원소로 구성된 데이터 형식
  • 행 하나인 행렬 = 행 벡터 / 열 하나인 행렬 = 열 벡터 / 행 벡터 & 열 벡터 = 벡터 행렬
  • 어떤 자료형으로 표현할 것인지 명시해야 함
    • Vec<uchar, 2> Vec2b
    • Vec<uchar, 3> Vec3b (3채널 컬러 영상 픽셀 값 표현할 때 사용)
    • Vec<uchar, 4> Vec4b
    • Vec<short, 2> Vec2s
    • Vec<short, 3> Vec3s
    • Vec<short, 4> Vec4s
    • Vec<ushort, 2> Vec2w
    • Vec<ushort, 3> Vec3w
    • Vec<ushort, 4> Vec4w
    • Vec<int, 2> Vec2i
    • Vec<int, 3> Vec3i
    • Vec<int, 4> Vec4i
    • Vec<float, 2> Vec2f
    • Vec<float, 3> Vec3f
    • Vec<float, 4> Vec4f
  • p1.val[n] 으로 n번째 원소 값 변경 가능

 

5. Scalar 클래스

  • 4채널 이하의 영상에서 픽셀 값 표현하는 용도로 자주 사용됨
  • Scalar_ 클래스 템플릿 이름 재정의이며, Scalar_ 클래스는 Vec 클래스를 상속받아 만들어짐
  • all() : 4개의 val 배열 값을 모두 특정 값으로 설정한 객체 반환
  • Scalar : 크기 4인 double 형 배열 val을 멤버 변수로 가지고 있는 자료형
  • B, G, R, alpha(grayscale에선 0)
  • p1.val[n] 대신 p1[n] 사용 가능, 더 자주 사용함 ([] 연산자 재정의)

 

6. RotatedRect 클래스

  • 회전된 사각형 표현하는 클래스
  • 회전된 사각형의 중심 좌표 나타내는 center, 가로 및 세로 크기 나타내는 size, 회전 각도 나타내는 angle 멤버 변수
  • points() : 회전된 사각형의 꼭지점 좌표들을 저장
  • boundingRect() : 회전된 사각형을 포함하는 최소 크기의 사각형 정보 반환 (정수)
  • boudingRect2f() : 회전된 사각형을 포함하는 최소 크기의 사각형 정보 반환 (실수)