더북(TheBook)

임의의 곡선을 형성하는 점들의 집합을 가지고 있을 때, 해당 곡선의 길이를 구하고 싶다면 arcLength() 함수를 사용할 수 있습니다.

double arcLength(InputArray curve, bool closed);

curve

입력 곡선

closed

폐곡선 여부

반환값

입력 곡선의 길이

 

arcLength() 함수는 입력 곡선의 길이를 계산하여 반환합니다. 입력 곡선 curve에는 보통 vector <Point> 또는 vector<Point2f> 자료형의 변수를 전달합니다. 두 번째 인자 closed 값이 true이면 입력 곡선의 시작점과 끝점이 연결되어 있는 폐곡선이라고 간주하여 길이를 계산합니다.

임의의 외곽선 정보를 가지고 있을 때, 외곽선이 감싸는 영역의 면적을 알고 싶다면 contourArea() 함수를 사용합니다. contourArea() 함수 원형은 다음과 같습니다.

double contourArea(InputArray contour, bool oriented = false);

contour

입력 곡선

oriented

진행 방향 정보 사용 여부. 이 값이 true이면 곡선의 진행 방향(시계 방향 또는 반시계 방향)에 따라 면적의 부호가 달라집니다. 이 값이 false이면 면적의 절댓값을 반환합니다.

반환값

입력 곡선이 감싸는 면적

 

예를 들어 (0, 0), (10, 0), (0, 10) 세 점에 의해 결정되는 삼각형이 있을 때, 이 삼각형의 외곽선 길이와 면적을 구하려면 다음과 같이 코드를 작성할 수 있습니다.

vector<Point> pts = { Point(0, 0), Point(10, 0), Point(0, 10) };
 
cout << "len = " << arcLength(pts, true) << endl;
cout << "area = " << contourArea(pts) << endl;
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.