공부중
[Open CV] 도형 그리기 본문
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 |
---|