컴퓨터 비전 기본 자료형 정리

nugurii0·2022년 9월 11일
0

다중차로인식

목록 보기
3/11

기본 자료형 클래스

컴퓨터 비전 프로그래밍에서 사용하는 다양한 자료형의 정의와 사용방법

Point_ 클래스

2차원 평면 위에 있는 한 점의 좌표를 나타내는 클래스

x, y 멤버변수를 가지며 멤버변수는 int, int64, float, double 자료형을 가질 수 있다. 기본 자료형은 int64이다.

멤버함수는 다음과 같다.

  • _Tp dot(const Point_& pt) : 두 점 사이의 내적(dot product)을 반환
  • double ddot(const Point_& pt) : 내적을 구해서 double 자료형으로 반환
  • double cross(const Point_& pt) : 두 점 사이의 외적(cross product)을 반환
  • bool inside(const Rect_<_Tp>& r) : 점의 좌표가 사각형 r 영역 안에 있으면 true 반환

Size_ 클래스

영상 또는 사각형 영역의 크기를 표현하는 클래스

영역의 가로, 세로 크기를 나타내는 width, height 멤버 변수를 가진다. int, in64, float, double로 선언할 수 있고 int64가 기본 자료형이다.

멤버 함수는 다음과 같다.

  • _Tp area(const Size_& sz) : 영역의 면적을 반환
  • bool empty() : 유효하지 않은 크기이면 true를 반환

Rect_ 클래스

사각형의 위치와 크기 정보를 표현하는 클래스

사각형 좌측 상단 점의 좌표와 가로, 세로 영역을 저장하여 사각형을 표현한다.

멤버 변수로는 x, y, width, height가 있고 자료형으론 int, float, double이 가능하다. int가 기본 자료형

생성자로는 기본 생성자, 복사 생성자, 각각의 멤버변수 입력 외에도 Point와 Size를 받거나 대각 위치의 두 점을 인자로 받는 생성자도 존재했다.

멤버 함수는 다음과 같다.

  • Point_<_Tp> tl() : 좌측 상단 점의 좌표 반환
  • Point_<_Tp> br() : 우측 하단 점의 좌표 반환
  • Size_<_Tp> size() : 사각형 크기 정보 반환
  • _Tp area() : 사각형의 면적 반환
  • bool empty() : 유효하지 않은 사각형이면 true 반환
  • bool contains(const Point_<_Tp>& pt) : 점 pt가 사각형 내부에 있으면 true 반환

Rect_ 객체끼리 논리연산을 수행할 수 있다.

& 연산을 하면 교차하는 사각형 영역을 반환, | 연산을 하면 모두 포함하는 최소 크기의 사각형을 반환한다.

RotatedRect 클래스

회전된 사각형을 표현하는 클래스

사각형의 중심 좌표, 사각형의 가로 및 세로 크기, 회전 각도 정보를 토대로 회전된 사각형을 표현한다.

멤버 변수는 center, size, angle이고 모든 정보는 float 자료형이다.

생성자로는 기본 생성자, 각각의 멤버변수 입력 외에 세 꼭지점 좌표를 받는 생성자도 존재한다.

멤버 함수는 다음과 같다.

  • void points(Point2f pts[]) : 네 꼭지점 좌표를 pts 인자에 저장
  • Rect boundingRect() : 회전된 사각형을 포함하는 최소 크기의 사각형 정보를 반환(정수단위)
  • Rect_<float> boundingRect2f() : 실수 단위로 반환

Range 클래스

범위 또는 구간을 표현하는 클래스

범위의 시작과 끝을 나타내어 범위를 표현한다.

멤버 변수는 start와 end로 int자료형이다.

멤버 함수는 다음과 같다.

  • int size() : 범위 크기를 반환(end - start)
  • bool empty() : start == end 면 true 반환
  • static Range all() : start=INT_MIN, end=INT_MAX로 설정한 Range객체 반환

end는 포함하지 않는다. [start, end)

String 클래스

기존에는 cv::string 이라는 자체적인 문자열 클래스를 정의하고 사용하였지만 OpenCV4.0 버전 이후부터는 C++ 표준의 std::stringString 으로 재정의하여 사용한다. 완전히 동일하며 호환성을 위해 String 클래스 이름을 사용한다.

객체 비교를 위해서는 std::string::compare() 또는 == 연산자를 사용한다.

String format(const char* fmt, …) 함수를 사용하여 C언어의 printf 처럼 사용할 수 있다.

profile
개발과 보안을 공부하는 학생

0개의 댓글