본문 바로가기
OpenCV/OpenCV-Chapter

CH02 OpenCV-Python 기초(도형그리기)

by kiimy 2021. 12. 18.
728x90
728x90
import numpy as np
import cv2

img = np.full((400, 400, 3), 255, np.uint8)

cv2.line(img, (50, 50), (200, 50), (0, 0, 255), 5)
cv2.line(img, (50, 60), (150, 160), (0, 0, 128))

## ( x, y, w, h) = x, y 꼭지점으로부터 (x+w), (y+h)

cv2.rectangle(img, (50, 200, 150, 100), (0, 255, 0), 2)
cv2.rectangle(img, (70, 220), (180, 280), (0, 128, 0), -1)

cv2.circle(img, (300, 100), 30, (255, 255, 0), -1, cv2.LINE_AA)
cv2.circle(img, (300, 100), 60, (255, 0, 0), 3, cv2.LINE_AA)

pts = np.array([[250, 200], [300, 200], [350, 300], [250, 300]])
cv2.polylines(img, [pts], True, (255, 0, 255), 2)
# line
cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, 
			shift=None) -> img
'''
pt1, pt2: 직선의 시작점과 끝점. (x, y) 튜플
shift: 그리기 좌표 값의 축소 비율. 기본값은 0.
'''
# rectangle
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, 
				shift=None) -> img
                
cv2.rectangle(img, rec, color, thickness=None, lineType=None, 
				shift=None) -> img
'''
pt1, pt2: 사각형의 두 꼭지점 좌표. (x, y) 튜플
rec: 사각형 위치 정보. (x, y, w, h) 튜플.
'''

# circle
cv2.circle(img, center, radius, color, thickness=None, lineType=None, 
			shift=None) -> img
'''
center: 원의 중심 좌표. (x, y) 튜플
radius: 원의 반지름	
'''

# 다각형(polylines)
cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, 
				shift=None) -> img
'''
pts: 다각형 외곽 점들의 좌표 배열. numpy.ndarray의 리스트.
	 [np.array([[10, 10], [50, 50], [10, 50]], dtype=np.int32)]
isClosed: 폐곡선 여부. True 또는 False 지정
'''

# 문자열(puttext)
cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, 
			lineType=None, bottomLeftOrigin=None) -> img
'''
bottomLeftOrigin: True이면 영상의 좌측 하단을 원점으로 간주. 기본값은 False.
'''

# lineType = cv2.LINE_AA를 주로 사용

728x90

댓글