[python] 파이썬 OpenCV 4 Drawing 기능 (선, 사각형, 폴리곤, 문자열, ...)
파이썬과 OpenCV 4를 활용하여 이미지 데이터에 선, 사각형, 폴리곤, 문자열 등을 출력하는 드로잉(Drawing) 기능을 테스트합니다. 사진이나 영상 데이터를 처리 후 의미있는 정보를 표시할 때 사용될 수 있습니다.
import numpy as np
import cv2 as cv
# 이미지 변수 생성
img = np.zeros((512,512,3), np.uint8)
# 5px 굵기의 대각선 그리기
cv.line(img, (0,0), (511,511), (255,0,0), 5)
# 오른쪽 상단 구석에 3px 굵기의 사각형 그리기
# top-left 좌표와 bottom-right 좌표가 필요
cv.rectangle(img, (384,0), (510,128), (0,255,0), 3)
# 이전에 그린 사각형 안에 원 그리기
# 중심 좌표와 반지름 정보 필요
# 굵기값이 -1이면 도형안을 색으로 채움
cv.circle(img, (447,63), 63, (0,0,255), -1)
# 폴리곤 그리기
# int32 자료형 정점(vertex) 좌표 리스트
pts = np.array([[10,5],[20,20],[70,20],[50,10]], np.int32)
# ROWS X 1 X 2 형태르 재배열
pts = pts.reshape((-1,1,2))
# 노란색, 닫힌(True) 폴리곤으로 설정
cv.polylines(img, [pts], True, (0,255,255))
# 문자열 출력
font = cv.FONT_HERSHEY_COMPLEX
# bottom-left 좌표, 폰트, 크기, 색상, 굵기, 라인타입 등을 설정)
cv.putText(img, 'OpenCV', (10,500), font, 4, (255,255,255), 2, cv.LINE_AA)
cv.imshow('frame', img)
cv.waitKey(0)
reshape() 함수는 하나의 차원에 대해서 -1값을 기술할 수 있습니다. -1로 기술된 차원은 매개변수로 전달된 원본 배열의 사이즈에서 자동으로 크기를 유추하게 됩니다.
아래는 실행 결과입니다.
끝.
댓글
댓글 쓰기