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개의 댓글