Prerequisite : 윤곽선 길이 구하기

바운딩 박스

바운딩 박스란 윤곽선을 외접하여 둘러싸는 가장 작은 사각형을 의미한다. OpenCV에서는 boundingRect라는 함수를 통해 바운딩 박스를 구할 수 있다.

Imgproc.boundingRect(contour)

contour: 외곽선 정보(좌표)
반환값: 사각형 정보(Rect);(x,y,w,h) 정보를 포함

boundingRect함수를 이용하여 이미지내의 도형을 감싸는 예제를 살펴보자.

예제 코드:

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) {
    // 윤곽선을 감싸는 최소 사각형 정보
    val rect:Rect = Imgproc.boundingRect(contours[i])
    // rect를 기반으로 사각형 그리기
    Imgproc.rectangle(src, rect, RED)
}
카테고리: OpenCV

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.