공부중

[Open CV] 도형 그리기 본문

인공지능...?/Open CV

[Open CV] 도형 그리기

복습 2024. 8. 30. 19:14
728x90

 

1. 직선(Line)

 

cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)

 

 

  • img: 그릴 이미지.
  • pt1: 시작 점의 좌표 (x, y).
  • pt2: 끝 점의 좌표 (x, y).
  • color: 선의 색상 (BGR 형식, 예: (255, 0, 0)).
  • thickness: 선의 두께 (기본값: 1).
  • lineType: 선의 유형 (기본값: cv2.LINE_8, cv2.LINE_AA는 안티에일리어싱).
  • shift: 좌표 값의 비트 시프트 (기본값: 0).

 

 

2. 사각형(Rectangle)

cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
  • pt1: 사각형의 왼쪽 상단 모서리 좌표 (x, y).
  • pt2: 사각형의 오른쪽 하단 모서리 좌표 (x, y).

 

3. 원(Circle)

cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
  • center: 원의 중심 좌표 (x, y).
  • radius: 원의 반지름.
  • thickness: 선의 두께. -1로 설정하면 원이 채워집니다.
  • 다른 매개변수는 cv2.line과 동일.

 

 

4. 타원(Ellipse)

cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)

 

  • center: 타원의 중심 좌표 (x, y).
  • axes: 타원의 장축과 단축 길이 (width/2, height/2).
  • angle: 타원의 회전 각도 (degree 단위).
  • startAngle: 타원의 호의 시작 각도.
  • endAngle: 타원의 호의 끝 각도.
  • 다른 매개변수는 cv2.line과 동일.

 

5. 다각형(Polygon)

cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)

 

 

  • pts: 다각형의 각 꼭짓점 좌표 배열 (예: np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)).
  • isClosed: 다각형의 닫힘 여부 (True면 닫힌 다각형).

 

 

6. 텍스트(Text)

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)

 

  • text: 표시할 문자열.
  • org: 텍스트의 시작 좌표 (x, y).
  • fontFace: 폰트 유형 (예: cv2.FONT_HERSHEY_SIMPLEX).
  • fontScale: 폰트 크기.
  • bottomLeftOrigin: 기본값은 False. True로 설정하면 텍스트가 위에서 아래로 그려집니다.
  • 다른 매개변수는 cv2.line과 동일.

 

 

7. 예제

import cv2
import numpy as np

# 빈 이미지 생성 (검은 배경, 512x512 크기)
img = np.zeros((512, 512, 3), np.uint8)

# 직선 그리기
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)

# 사각형 그리기
cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)

# 원 그리기
cv2.circle(img, (447, 63), 63, (0, 0, 255), -1)

# 타원 그리기
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, (255, 255, 0), 2)

# 다각형 그리기
pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255), 3)

# 텍스트 그리기
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'OpenCV', (10, 500), font, 4, (255, 255, 255), 2, cv2.LINE_AA)

# 이미지 보기
cv2.imshow('Drawing', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
728x90

'인공지능...? > Open CV' 카테고리의 다른 글

[Open CV] 이미지 읽기  (0) 2024.08.29