Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

OpenCV cv2.ellipse()로 이미지에 타원 그리기 완벽 가이드

이 튜토리얼에서는 Python의 OpenCV 라이브러리를 사용해 이미지 위에 타원(ellipse)을 그리는 방법을 알아봅니다. 타원을 그릴 때는 OpenCV에서 제공하는 cv2.ellipse() 함수를 활용합니다.

원본 이미지

OpenCV cv2.ellipse()로 이미지에 타원 그리기 완벽 가이드

알고리즘 단계

1단계: cv2 모듈을 임포트합니다.
2단계: imread() 함수로 이미지를 불러옵니다.
3단계: 타원의 중심 좌표(center coordinates)를 설정합니다.
4단계: 타원의 장축과 단축 길이(axes length)를 설정합니다.
5단계: 타원의 회전 각도(angle)를 설정합니다.
6단계: 호(arc)를 그릴 시작 각도와 끝 각도를 설정합니다.
7단계: 선 색상(color)을 BGR 값으로 지정합니다.
8단계: 선 두께(thickness)를 설정합니다.
9단계: 위 파라미터들을 cv2.ellipse() 함수에 전달하여 이미지에 타원을 그립니다.
10단계: 최종 결과물을 화면에 출력합니다.

주요 파라미터 설명

  • center_coordinates: 타원의 중심점 좌표 (x, y)
  • axesLength: 장축과 단축의 길이 (장축, 단축)
  • angle: 타원이 회전되는 각도 (단위: 도)
  • startAngle / endAngle: 타원 호의 시작과 끝 각도. 0~360으로 설정하면 완전한 타원이 그려집니다.
  • color: BGR 형식의 색상 값. 예: (0, 0, 255)는 빨간색
  • thickness: 선의 두께. 픽셀 단위로 지정합니다.

예제 코드

import cv2

# 이미지 불러오기
image = cv2.imread('testimage.jpg')

# 타원 중심 좌표
center_coordinates = (120, 100)

# 장축 및 단축 길이
axesLength = (100, 50)

# 회전 각도, 시작/끝 각도
angle = 0
startAngle = 0
endAngle = 360

# 색상(BGR: 빨간색)과 선 두께
color = (0, 0, 255)
thickness = 5

# 타원 그리기
image = cv2.ellipse(image, center_coordinates, axesLength, angle, startAngle, endAngle, color, thickness)

# 결과 출력
cv2.imshow('Ellipse', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

코드 핵심 포인트

위 코드에서 startAngle=0, endAngle=360으로 설정했기 때문에 닫힌 완전한 타원이 그려집니다. 만약 부분적인 호만 그리고 싶다면 끝 각도 값을 조절하면 됩니다. 또한 cv2.waitKey(0)cv2.destroyAllWindows()를 추가하면 창이 즉시 닫히지 않고 사용자가 키를 누를 때까지 결과 화면이 유지됩니다.

실행 결과

OpenCV cv2.ellipse()로 이미지에 타원 그리기 완벽 가이드

실행 결과, 빨간색 윤곽선을 가진 타원이 지정한 중심 좌표 (120, 100)를 기준으로 이미지 위에 그려진 것을 확인할 수 있습니다. 이 방법은 객체 검출 결과 시각화, 관심 영역(ROI) 표시 등 다양한 컴퓨터 비전 프로젝트에서 유용하게 활용할 수 있습니다.