Maxima's Lab

[Python, Opencv] Binary Objects을 포함하는 가장 작은 사각형 찾기 본문

Python/Opencv

[Python, Opencv] Binary Objects을 포함하는 가장 작은 사각형 찾기

Minima 2024. 3. 16. 13:25
728x90
SMALL

안녕하세요, 오늘은 Binary Objects을 포함하는 가장 작은 사각형을 찾는 방법에 대해서 알아보겠습니다.

 

알고리즘을 적용하고자 하는 이미지는 다음과 같습니다.

 

이미지

 

위의 이미지는 총 3개의 Connected Objects로 구성되어 있습니다.

이미지 내 각 Connected Object들을 포함하는 가장 작은 사각형을 구하는 코드는 다음과 같습니다.

 

import cv2
import matplotlib.pyplot as plt
import numpy as np

img = cv2.imread("...png")
draw_img = img.copy()

# Contours 찾기
contours, _ = cv2.findContours(img[:, :, 0], cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

for certain_contour in contours:

    rect = cv2.minAreaRect(certain_contour)
    box = cv2.boxPoints(rect)
    box = np.intp(box)

    # 사각형 그리기
    cv2.drawContours(draw_img, [box], 0, (0, 255, 0), 2)

plt.imshow(np.hstack([img, draw_img]))
plt.axis('off')
plt.show()

 

위의 코드를 통해 알고리즘을 적용한 결과는 다음과 같습니다.

 

알고리즘 적용 결과

 


이상으로, Binary Objects를 포함하는 가장 작은 사각형을 찾는 방법에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments