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