728x90

1. 정의

OpenCV의 Drawing Functions는 이미지나 영상 위에 선(Line), 도형(사각형·원·다각형), 텍스트 등을 그릴 수 있게 해주는 함수 모음입니다. 이 기능은 시각화, 객체 검출 결과 표시, UI 요소 제작, 디버깅 등 다양한 컴퓨터 비전 작업에서 기본이 되며, 이미지 처리의 흐름을 직관적으로 표현할 수 있도록 돕습니다.

2. 설명

OpenCV의 그리기 함수는 대부분 cv2 모듈에서 제공되며 공통적으로 이미지 대상, 좌표, 색상(BGR), 두께, 선 타입 등의 인자를 사용합니다. 대표적인 함수는 다음과 같습니다.

cv2.line(): 두 점을 잇는 직선을 그립니다. 기준선, ROI 시각화 등에서 활용합니다.
cv2.rectangle(): 객체 검출 결과(바운딩 박스)를 표시할 때 가장 자주 사용됩니다.
cv2.circle(): 중심점과 반지름만으로 원을 표시할 수 있어 특징점 시각화에 유용합니다.
cv2.putText(): 영상 위에 텍스트 라벨을 추가할 때 사용합니다.
cv2.polylines(): 다각형 형태를 표시하여 경로, 윤곽, 영역을 시각화할 때 유효합니다.

3. 예제(Python)


import cv2
import np as numpy

# 빈 이미지 생성
img = np.zeros((400, 600, 3), dtype=np.uint8)

# 직선 그리기
cv2.line(img, (50, 50), (550, 50), (0, 255, 0), 2)

# 사각형 그리기
cv2.rectangle(img, (50, 100), (250, 300), (255, 0, 0), 3)

# 원 그리기
cv2.circle(img, (400, 200), 60, (0, 0, 255), -1)

# 다각형 그리기
pts = np.array([[300, 350], [350, 300], [400, 350], [350, 380]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (255, 255, 0), 2)

# 텍스트 표시
cv2.putText(img, "OpenCV Drawing", (50, 380),
            cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)

cv2.imshow("Drawing Functions", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

이 예제는 다양한 도형을 활용해 시각적으로 결과를 표현하는 기본적인 구조입니다. 특히 객체 탐지 결과를 검증하거나 이미지 분석 기반 프로젝트에서 디버깅용 시각화를 수행할 때 매우 유용합니다.

728x90

+ Recent posts