Prerequisite : 윤곽선 길이 구하기
fitEllipse 함수
OpenCV에서는 fitEllipse라는 함수를 제공하는데, 이는 주어진 점들을 적당히 감싸는 타원 정보를 구할 수 있다.
Imgproc.fitEllipse(contour)
contour: 윤곽선 좌표
반환값: RotatedRect 타입의 타원 정보
fitEllipse와 함께 이미지 내 도형을 타원으로 적당히 감싸는 예제를 살펴보자.

예제코드:
val contours = ArrayList<MatOfPoint>()
val hierarchy = Mat()
Imgproc.findContours(
binarySrc,
contours,
hierarchy,
Imgproc.RETR_TREE,
Imgproc.CHAIN_APPROX_SIMPLE
)
for (i in 0 until contours.size) {
// 내부에서 사용하는 fitEllipseNoDirect 함수에서 최소 5개 이상의 정점을 요구한다.
if (contours[i].rows() >= 5){
val contour2f = MatOfPoint2f(*contours[i].toArray())
// 도형을 감싸는 타원 정보 구하기
val rotatedRect = Imgproc.fitEllipse(contour2f)
// 타원 그리기
Imgproc.ellipse(src, rotatedRect, RED)
}
}
0개의 댓글