더북(TheBook)

외곽선 또는 점들을 감싸는 최소 크기의 원을 구하고 싶을 때에는 minEnclosingCircle() 함수를 사용합니다. minEnclosingCircle() 함수 원형은 다음과 같습니다.

void minEnclosingCircle(InputArray points,
        Point2f& center, float& radius);

points

입력 점들의 집합. vector<Point> 또는 Mat 타입

center

원의 중심 좌표

radius

원의 반지름

 

임의의 객체에 대해 바운딩 박스, 최소 크기 회전된 사각형, 최소 크기 원을 검출한 예를 그림 12-11에 나타냈습니다. 그림 12-11은 그리스 문자 β 모양의 객체에 대해 바깥쪽 외곽선을 검출하고, 검출한 외곽선 정보를 boundingRect(), minAreaRect(), minEnclosingCircle() 함수에 전달하여 구한 바운딩 박스, 최소 크기 회전된 사각형, 최소 크기 원을 영상 위에 나타낸 결과입니다. 빨간색 사각형은 바운딩 박스이고, 파란색 사각형은 최소 크기 회전된 사각형, 노란색 실선은 최소 크기 원입니다. 참고로 최소 크기 회전된 사각형의 각도 정보를 담고 있는 RotatedRect::angle 멤버 변수를 참조하여 객체의 대략적인 회전 각도를 가늠할 수 있습니다.

▲ 그림 12-11 객체를 감싸는 사각형과 원 검출

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.